IT×LIFE

web系お勉強ノート+映画読書記録+お勉強記録(放送大学)+ITコミュニティ管理(リンクへ!)

【解決】NetBeansとjdkの罠でjavax.swing動かない

→NetBeans8.2を入手して結果的に解決しました。

【解決】NetBeans8.2がDLできない - IT×LIFE

【後日談追記】

基本的に

Java8+NetBeans8.2

Java11+NetBeans12.2

の環境が適切であることを教えていただきました。

ありがとうございます。

私はJAVA14(サポート終了)でしたので、どちらにも当てはまっておりませんでした。。。

*******************************

前回、 www.saikidou-restart.com と、意気揚々としていましたが、GUIを使う段階でエラーになった。

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff8f0a2f74a, pid=20980, tid=20304
#
# JRE version: Java(TM) SE Runtime Environment (14.0.1+7) (build 14.0.1+7)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.0.1+7, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [awt.dll+0x8f74a]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\...\Documents\NetBeansProjects\GUItest\hs_err_pid20980.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

とエラーが出た。 なるほど、JAVA だとこうエラーになるとこういう事か、 とここでNetBeansでエラーになる状態を初めて把握。

何が問題なのか分からなかったので、1行目の

# A fatal error has been detected by the Java Runtime Environment: で検索すると、まずココでヒントが。

Java - A fatal error has been detected by the Java Runtime Environment というエラーがでます|teratail

近い。

なので、C:\Program Files\NetBeans-12.0\netbeans\etcにある、自分のNetBeans上のファイルを思い当たるバージョンに書きかえてみたり、してもダメでした。(この時点ではまだ根本的な原因を分かっていません)

そこで、 この記事のエラーと私のエラーで微妙に違うと思った部分

# C [awt.dll+0x8f74a]で検索すると、なぜこの段階でエラーになっているのかが分かった。

detail.chiebukuro.yahoo.co.jp

ここでjavax.swing使ってるわ、、、と気づきました。

私は原因を説明できませんが、 Javaのバグと思われます。 JDK11か JDK13の頃から起こっていたと思われます。 Swingのプログラムがほとんどエラーになるのですが、Java 8でビルドしたものなど、たまに動くものもあります

とのことで、私の環境を確認。

前回までの状態は、もともと謎に入れていた、NetBeans12.0でした。

しかも、JDKのバージョンが何で動いていたのかC:\Program Files\Javaを見ると、 (コマンドで確認するときはjavac -versionでわかる。この時点では打ちませんでしたが)

jdk-14.0.1で動いている。

(この記事一番最初のリンクの時点でなぜか気付かず)

ひとまず、jdk1.8のものが必要であると思い、

Java SE Development Kit 8 - Downloads

から自分の環境に必要だった、Java SE Development Kit 8u281を落としました。 そうすると、C:\Program Files\Javaにも、jdk1.8関係が入っていると思う。

この状態で既存環境のC:\Program Files\NetBeans-12.0\netbeans\etcをバージョンを落として書き換えても無理でしたので、 もう、NetBeans12.0でGUI動かすの諦めることにした。

でも実際にこれからお仕事に使う言語である以上(環境はEclipseだけど) この履修を諦めることにはいかなかった。

「NetBeans8.2を、素直に、DLしよう。。。」

と立ち戻ったのですが、まさかの、ここからまた簡単にDLできなかったので、

それは次の記事に分けて書きます。

(できればjdkの問題だけで解決したかった。) ↓解決↓

www.saikidou-restart.com

ここまでしないとDLできないもの?