为什么我的jar可以在Windows而不是Linux上运行

时间:2018-12-27 15:06:12

标签: java intellij-idea javafx jar artifact

我正在研究Javafx应用程序。我用intellij和工件创建了jar。该jar在Windows上运行良好。但是,当我在linux上运行它时,它显示以下错误消息:

Erreur : impossible to find or load the main class view.View
Caused by : java.lang.NoClassDefFoundError: javafx/application/Application

这可能是一个愚蠢的错误,但我已经坚持了很长时间..... 我在互联网上找不到任何可以帮助我的东西,因此,如果您有想法或有用的链接,我会很感兴趣

2 个答案:

答案 0 :(得分:2)

您很可能缺少JavaFX的实现。在大多数Linux发行版中,JavaFX是与JDK分开的软件包。该软件包最有可能称为openjfx或类似名称。

如果您使用Debian或基于Debian的发行版(例如Ubuntu),则应该能够通过运行以下命令安装openjfx:

$ sudo apt-get install openjfx

答案 1 :(得分:1)

您已经说过Jar可以在Windows上正常工作,所以打包就可以了。

在Linux上唯一可能出错的地方可能是以下之一:

  1. 您在输入classname参数时犯了一个错误
  2. 应用程序的类路径指定不正确
  3. 错误的目录位于类路径上
  4. 子目录路径与FQN不匹配
  5. 类路径中缺少依赖项
  6. 该类已在错误的包中声明

也可能存在版本不匹配

在终端上输入以下内容-

javac -version

如果您获得 javac 1.6.0_10 或更高版本作为输出,则必须执行以下步骤。如果没有得到上述输出,则必须卸载并重新安装Java。

显示的版本为1.6.0_10或更高版本的步骤 创建符号链接-

ln -s /usr/local/java /usr/local/jdk1.6.0_10

完成后,将以下内容添加到您的.bashrc文件中

export JAVA_HOME = / usr / local / jdk1.6.0_10 export PATH = $ JAVA_HOME / bin:$ PATH export CLASSPATH = $ CLASSPATH:$ JAVA_HOME / lib

对于Ref