在Ubuntu

时间:2019-03-05 14:08:11

标签: java linux ubuntu javafx

我正在尝试使在Windows上创建的JavaFX应用程序适用于Ubuntu。我已经制作了.jar文件,它在Windows 10上可以正常工作,但在Ubuntu上无法工作。无论是从桌面双击它(启用可执行文件运行)还是从终端运行它,我都会不断遇到这些错误:

javac myApp.jarjavac myApp

error: Class names, 'myApp.jar', are only accepted if annotation processing is explicitly requested

javac -cp myApp.jarjavac -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库可能会遇到一些问题,但是我不确定这是它还是我将如何修复它。

2 个答案:

答案 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获得了解决方案。感谢所有提供帮助的人。