当前位置: 首页 > 知识库问答 >
问题:

如何使用Java11运行编译Java8 JavaFX应用程序jar?

邹坚壁
2023-03-14

我有一个用Java 8编译的可执行jar文件,其中包含一个名为< code>app.jar的JavaFX应用程序。

当我安装了Java8时,我可以简单地用java-jarapp.jar运行它。

现在我只安装了Java 11,运行上面的命令会产生以下错误:

Error: Could not find or load main class <...>
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

因为Java 11不再包含JavaFX。

所以我考虑安装JavaFX。openjfx.org以两种形式提供JavaFx:SDK和JMOD文件。

我认为我不需要SDK,因为我不是在创建JavaFX,而只是在运行它。这使得JMOD文件成为剩下的选项。

然而,关于JMOD的Oracle文档说:“JMOD文件格式允许您聚合除。类文件、元数据和资源。这种格式是可移植的,但不是可执行的,这意味着您可以在编译时或链接时使用它,但不能在运行时使用,”因此它们似乎不能帮助我运行应用程序。

问题:

    < li >如何使用Java 11运行时运行上面定义的< code>app.jar? < li >是否有任何文档解释如何执行此操作,如果有,在哪里?

共有1个答案

祁乐邦
2023-03-14

似乎您已经错过了将PATH_TO_FX环境变量添加到您的系统中。你可以在这里找到如何操作的指南:

如果它是一个Java8应用程序,对您来说最简单的选择是简单地获取Oracle JDK 8并将其定义为系统环境中的JDK。

 类似资料:
  • 比方说我安装了OracleJDK11(只是为了让事情更简单)。然后我下载了Gluon的JavaFX11,并在JDK上解包。实际上,我在哪里解包JavaFX并不重要(因为我的下一个目标是基于OpenJRE制作我自己的JRE安装程序)。然后我尝试启动应用程序: 我得到了这个: 启动层初始化过程中发生错误java.lang.LayerInstantiation异常:包jdk.internal.jrtfs

  • 我正在用出色的webdriver框架构建一个应用程序。首先,我想指出,我对Java非常陌生。开始学习它大约3-4天前,认为它是伟大的使用到目前为止!我正在使用IntelliJ(我使用PyCharm,所以对我来说这是一个明显的选择) 不管怎么说,问题就在这里。我已经开始编写我的代码,并且一切都很顺利,然后我决定我可能应该从GUI开始。所以我在IntelliJ中创建了一个新的JavaFX应用程序,添加

  • 问题内容: 我正在编译一个简单的程序 我在命令提示符下输入了Java Test.java,但没有成功 我没有使用任何IDE 我应该在哪里将程序文件放在计算机上 谢谢 问题答案: 您不能直接运行Java源文件。您需要先使用进行编译: 然后,您将获得一个可以运行的.class文件:

  • 主要内容:C++源文件的后缀,g++ 命令C++ 和C语言类似,也要经过编译和链接后才能运行。在《 C语言编译器》专题中我们讲到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、 GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C++ 程序,步骤是一样的,这里不再赘述,读者需要留意的是 C++ 源文件的后缀,以及 GCC 中的 命令。 下图是 C/C++ 代码生成可执行文

  • 当我打f5我得到这个文本在调试窗口 javac版本展示 java版本 我试图编译的代码 路径、JAVA_HOME和JRE_HOME设置正确。调试已安装的加载项。我可以编译和运行相同的代码在InteliJ IDEA或使用java(文件),javac(文件),它会工作正常,但我不知道为什么它不工作在vscode.

  • 问题内容: 如何在Mac上用Java编译和运行程序? 我是新来的。 我还下载了一个在此向我建议的程序,称为wrangler,如果与情况有关。 问题答案: 在Mac OSX或任何主要操作系统上编译和运行Java应用程序非常容易。Apple随OSX一起提供了一个功能齐全的Java运行时和开发环境,因此您要做的就是编写Java程序并使用内置工具来编译和运行它。 编写您的第一个程序 第一步是编写一个简单的