我已经使用内置的 Gradle 支持在 IntelliJ (2019.2) 中设置了一个 OpenJDK 12 项目。为了设计 GUI,我使用的是 JavaFX 12。我已经多次遵循并阅读了安装指南,在我的 IDE 中运行程序没有问题,问题是当我尝试构建我运行的分发的 .jar 文件时成问题。到目前为止,我还没有找到一个有效的解决方案,我已经搜索了很多,几乎为此而撕裂了我的头发。目前,当我尝试使用 java -jar "jarName".jar 运行我的 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:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at com.CAM.Starter.main(Starter.java:6)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 10 more
Run Code Online (Sandbox Code Playgroud)
我尝试将我的主类移动到一个不扩展应用程序的单独类,这就是导致上述错误的原因。不移动我的 Main 类,我会得到一个不同的错误。
我的 build.gradle 目前看起来像这样:
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8' …Run Code Online (Sandbox Code Playgroud)