gpt4 book ai didi

java - 尝试运行 JavaFX 应用程序的可执行 jar - 错误 : JavaFX runtime components are missing

转载 作者:行者123 更新时间:2023-12-02 01:45:17 25 4
gpt4 key购买 nike

我已经创建了一个可以部署的 JavaFX 11 应用程序。

我使用 Gradle 5.0 作为构建工具,并使用此命令来编译 jar:

jar {
manifest {
attributes(
'Main-Class': 'checkmydigitalfootprint.MainApp'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}

然后在命令行上我尝试了不同的命令来运行 jar 文件:

java -jar CheckMyDigitalFootprint.jar

java -jar CheckMyDigitalFootprint.jar --module-path="/users/joseph/eclipse-workspace/javafx-sdk-11.0.1/lib" --add-modules=javafx.controls

java -jar CheckMyDigitalFootprint.jar --module-path="/users/joseph/eclipse-workspace/javafx-sdk-11.0.1/lib" --add-modules=javafx.controls --add-exports=javafx.graphics/com.sun.javafx.util=ALL-UNNAMED --add-exports=javafx.base/com.sun.javafx.reflect=ALL-UNNAMED --add-exports=javafx.base/com.sun.javafx.beans=ALL-UNNAMED --add-exports=javafx.graphics/com.sun.glass.utils=ALL-UNNAMED --add-exports=javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED

但所有结果都会导致相同的错误:

Error: JavaFX runtime components are missing, and are required to run this application

build.gradle 的其余部分:

plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.5'
id 'eclipse'
}

repositories {
mavenCentral()
}

dependencies {
/* uncomment for cross-platform jar: */
// compile "org.openjfx:javafx-graphics:11:win"
// compile "org.openjfx:javafx-graphics:11:linux"
compile "org.openjfx:javafx-graphics:11:mac"
compile 'com.jfoenix:jfoenix:9.0.8'
compile 'org.json:json:20180813'
compile 'com.google.api-client:google-api-client:1.23.0'
compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
compile 'com.google.apis:google-api-services-gmail:v1-rev83-1.23.0'
compile group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.1'
compile 'com.sun.activation:javax.activation:1.2.0'
compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2'
testCompile "org.testfx:testfx-core:4.0.15-alpha"
testCompile "org.testfx:testfx-junit:4.0.15-alpha"
}

javafx {
modules = [ 'javafx.controls', 'javafx.fxml' ]
}

run {
if (osdetector.os == 'windows') {
// Temporal fix for Eclipse with JDK 1.8 and Windows
systemProperty "java.library.path", "C:\tmp"
}
}

jar {
manifest {
attributes(
'Main-Class': 'checkmydigitalfootprint.MainApp'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}

mainClassName = 'checkmydigitalfootprint.MainApp'

最佳答案

official OpenJFX website对此进行了解释

解决方案很简单,只需添加以下VM选项:

--module-path /path/to/javafx-sdk-11.0.1/lib --add-modules=javafx.controls,javafx.fxml

为您的 Gradle 项目应用 JavaFX gradle 插件

plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.5'
}

添加所需的模块。例如:

javafx {
modules = [ 'javafx.controls' ]
}

指定 JavaFX 版本

javafx {
version = "11.0.+"
}

希望这对您有帮助:)

关于java - 尝试运行 JavaFX 应用程序的可执行 jar - 错误 : JavaFX runtime components are missing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com