[英]Javafx/application not found Gradle JavaFX
When I run my code in Intellij, it runs perfectly fine.当我在 Intellij 中运行我的代码时,它运行得非常好。 When I build the gradle project and get the jar, that works great too.
当我构建 gradle 项目并获得 jar 时,效果也很好。 However, when I try to run that jar I get this error:
但是,当我尝试运行 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:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at classes.Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 10 more
Here is my gradle build这是我的 gradle 构建
plugins {
id 'groovy'
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.9'
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(14))
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.jetbrains:annotations:19.0.0'
compile group: 'org.json', name: 'json', version: '20090211'
compile group: 'com.google.guava', name: 'guava', version: '30.0-jre'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.17'
}
javafx {
version = "15.0.1"
modules = ["javafx.controls", "javafx.fxml", "javafx.swing"]
}
version = '1.0'
jar {
manifest {
attributes(
'Main-Class': 'classes.Main',
)
}
}
task fatJar(type: Jar) {
manifest.from jar.manifest
classifier = 'all'
from {
configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
} {
exclude "META-INF/.SF"
exclude "META-INF/.DSA"
exclude "META-INF/*.RSA"
}
with jar
}
artifacts {
archives fatJar
}
This method of building the jar previously worked for my rest server application, no luck here though.这种构建 jar 的方法以前适用于我的 rest 服务器应用程序,但这里没有运气。 Am I going about this wrong?
我要解决这个问题了吗?
You need to add the dependency:您需要添加依赖项:
javafx:javafx.controls:11.0.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.