我正在尝试使在Windows上创建的JavaFX应用程序适用于Ubuntu。我已经制作了.jar文件,它在Windows 10上可以正常工作,但在Ubuntu上无法工作。无论是从桌面双击它(启用可执行文件运行)还是从终端运行它,我都会不断遇到这些错误:
javac myApp.jar
或javac myApp
error: Class names, 'myApp.jar', are only accepted if annotation processing is explicitly requested
javac -cp myApp.jar
或javac -cp myApp
javac: no source files
这是我在运行java -jar myApp.jar时遇到的错误:
Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: javarx/application/Application
这是我的清单文件:
Manifest-Version: 1.0
Implementation-Title:
Implementation-Version:
Permissions: sandbox
JavaFX-Version: 8.0
Class-Path:
Created-By: JavaFX Packager
Implementation-Vendor:
Main-Class: Main
我已经使用apt install default-jre
命令安装了Java。我还安装了JavaFX。
我认为应用程序尝试从中获取JavaFX库可能会遇到一些问题,但是我不确定这是它还是我将如何修复它。
答案 0 :(得分:0)
default-jre
软件包将在Ubuntu Bionic中安装Open JDK 11。 Java 11 removed JavaFX from the default distribution。现在,这些二进制文件已单独运送到JDK之外,您可以from Maven Central获得它们。
要么降级到JRE / JDK的较低版本,要么重新打包应用程序以包括JavaFX二进制文件,以便它可以与Java 11一起使用。
答案 1 :(得分:0)
显然,为了在Java发行版中获取JavaFX,您必须从Oracle而不是常规的openjdk-8-jre下载它。我从此website获得了解决方案。感谢所有提供帮助的人。