システム情報は次のとおりです。
Sudo update-alternatives --config Java
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/Java-11-openjdk-AMD64/bin/Java 1111 auto mode
* 1 /usr/lib/jvm/Java-11-openjdk-AMD64/bin/Java 1111 manual mode
2 /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java 1081 manual mode
Linuxバージョンは次のとおりです。
cat /proc/version
Linux version 4.19.0-kali3-AMD64 ([email protected]) (gcc version 8.2.0 (Debian 8.2.0-16)) #1 SMP Debian 4.19.20-1kali1 (2019-02-14)
Javaバージョン:
Java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Debian-3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Debian-3, mixed mode, sharing)
.jarを実行しようとしたときのエラー:
Java -jar any_game.jar
Exception in thread "main" Java.lang.NoClassDefFoundError: javafx/application/Application
at Java.base/Java.lang.ClassLoader.defineClass1(Native Method)
at Java.base/Java.lang.ClassLoader.defineClass(ClassLoader.Java:1016)
at Java.base/Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:174)
at Java.base/Java.net.URLClassLoader.defineClass(URLClassLoader.Java:550)
at Java.base/Java.net.URLClassLoader$1.run(URLClassLoader.Java:458)
at Java.base/Java.net.URLClassLoader$1.run(URLClassLoader.Java:452)
at Java.base/Java.security.AccessController.doPrivileged(Native Method)
at Java.base/Java.net.URLClassLoader.findClass(URLClassLoader.Java:451)
at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:588)
at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:521)
at Java.base/Java.lang.Class.forName0(Native Method)
at Java.base/Java.lang.Class.forName(Class.Java:398)
at org.Eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.Java:56)
Caused by: Java.lang.ClassNotFoundException: javafx.application.Application
at Java.base/Java.net.URLClassLoader.findClass(URLClassLoader.Java:471)
at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:588)
at Java.base/Java.lang.ClassLoader.loadClass(ClassLoader.Java:521)
... 13 more
Javaバージョンを変更しようとしましたが、機能しませんでした。
これを回避する別の方法は次のとおりです。
openjfx
パッケージをインストールするjar
を次のように実行します。Java --module-path /usr/share/openjfx/lib --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web -jar jarFile.jar
JavaFXアプリケーションをサポートするには、openjfx
packageをインストールする必要があります。libopenjfx-Java
、libopenjfx-jni
などのライブラリもインストールする必要があります。多分あなたはCLASSPATHにパスを追加する必要があるでしょう
export CLASSPATH=$CLASSPATH:/usr/share/Java/openjfx/lib/