我正在嘗試將JavaFX項目從8 Java版本升級到11版本。當(dāng)我使用“運(yùn)行” Gradle任務(wù)(遵循Openjfx教程)時,它可以工作,但是當(dāng)我構(gòu)建(使用“ jar” Gradle任務(wù))并執(zhí)行(使用“ java -jar”)一個jar文件時,消息“錯誤” :缺少JavaFX運(yùn)行時組件,并且是運(yùn)行此應(yīng)用程序所必需的”。這是我的build.gradle文件:group 'Project'version '1.0'apply plugin: 'java'sourceCompatibility = 1.11repositories { mavenCentral()}def currentOS = org.gradle.internal.os.OperatingSystem.current()def platformif (currentOS.isWindows()) { platform = 'win'} else if (currentOS.isLinux()) { platform = 'linux'} else if (currentOS.isMacOsX()) { platform = 'mac'}dependencies { compile "org.openjfx:javafx-base:11:${platform}" compile "org.openjfx:javafx-graphics:11:${platform}" compile "org.openjfx:javafx-controls:11:${platform}" compile "org.openjfx:javafx-fxml:11:${platform}"}task run(type: JavaExec) { classpath sourceSets.main.runtimeClasspath main = "project.Main"}jar { manifest { attributes 'Main-Class': 'project.Main' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }}compileJava { doFirst { options.compilerArgs = [ '--module-path', classpath.asPath, '--add-modules', 'javafx.controls,javafx.fxml' ] }}run { doFirst { jvmArgs = [ '--module-path', classpath.asPath, '--add-modules', 'javafx.controls,javafx.fxml' ] }}你知道我該怎么辦嗎?
3 回答

瀟湘沐
TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊
使用最新版本的JavaFX,您可以使用兩個Gradle插件輕松分發(fā)您的項目(javafxplugin和jlink)。
使用這些插件,您可以:
創(chuàng)建一個包含所有必需的jar文件的可分發(fā)zip文件:它需要執(zhí)行JRE(使用bash或批處理腳本)
為給定的操作系統(tǒng)使用Jlink創(chuàng)建本機(jī)應(yīng)用程序:不需要JRE來執(zhí)行它,因為Jlink在分發(fā)文件夾中包含“輕型” JRE(僅包括所需的Java模塊和依賴項)
如果您想舉一個例子,我在bitbucket上做了一個例子。
添加回答
舉報
0/150
提交
取消