最近、Ubuntu 18.04 で Greenfoot を使用するために JRE 8 と JDK 8 をインストールしました。
Java インストールの大部分は機能することがわかっています (Atom でコードを記述し、スクリプトで実行できます)。ただし、ターミナルで greenfoot を起動しようとすると、次のメッセージが表示されます。
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at bluej.Boot.main(Boot.java:193)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
これは、greenfoot が JavaFX クラスを見つけて実行できないという問題のようです。私の理解では、JavaFX のインストールには JRE 8 が付属しています。
JavaFX は、デフォルトの JRE 8 および JDK 8 インストールに付属していますか? Greenfoot を JavaFX の場所を指すようにする必要がありますか?
Greenfoot に詳しくない場合でも、助けていただければ幸いです。同様の問題を扱っていると思われる他の投稿を見ましたが、私の状況で修正をどのように適用すればよいのかまったくわかりませんでした。
助けてください!
答え1
はい。バカみたいですね。でも、あなたも同じ問題を抱えているなら、次のことを試してみてください。
JDK8 の Oracle バージョンをダウンロードしたことを確認してください (必要なのは JDK のみ)。apt 経由でダウンロードしたバージョンには FX が含まれていません (私の考えでは)。
GreenfootのインストールでOracle JDK8を使用していることを確認してください。
純粋な Java バージョンを使用してみてください。これにより、JDK のインストール場所を指定できるため、Oracle JDK を簡単に選択できます。