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

如何在JRE上运行java应用程序JDK13?

经佐
2023-03-14

我用JDK 13制作了一个java应用程序。我用launch4j创建了一个exe文件。但是没有人可以运行它,因为每个人都有jre 1.8版本,而且它不会启动。。。我必须在安装中包含java jdk 13,并用它设置java_home?

共有1个答案

杭昊空
2023-03-14

TL;DR——如果您想发布Java 13应用程序,最好的选择是使用jlink创建可执行文件。这避免了用户必须安装任何JDK或JRE才能运行代码。

显然,用户无法使用Java 8 JRE或JDK运行应用程序。典型的Java 13应用程序将使用Java 8平台中不存在的功能。但是即使它成功了,免费java 8在2021年4月也将是生命终结,那时:

>

  • 它将停止获取安全更新,使您的客户使用它(在理论上,如果不是实践的话)不安全。

    您的客户将更难找到免费的Java 8二进制文件。(不过,向甲骨文支付许可证费用将是一种选择。)

    但是Java13也有问题。那将是2020年9月生命的终结!此外,JRE发行版不再可用。

    最后,使用嵌入式JRE的应用程序安装程序总是有一些问题:

    >

  • 当JRE有安全补丁时,软件供应商很容易忘记更新安装程序。

    系统管理员很难将嵌入式JRE添加到自动更新的列表中。尤其是如果他们允许最终用户自己安装应用程序。

    最好的方法是执行以下操作:

    • 使用jlink为您支持的所有平台创建可分发的应用程序

    如果您不想使用jlink,另一种选择是开发在Java LTS版本上运行的代码。(当前LTS版本是java 11,下一个版本是java 17,它计划于2021年9月)。

    • 使用LTS版本将允许您将代码作为JAR文件发布
    • 嵌入式JRE是个坏主意;见上图

  •  类似资料:
    • 我有一个JavaFX应用程序,它调用一些JNI代码,使用预加载程序jar,并使用JDK1.7编译。现在,当我使用JRE7在另一台计算机上运行jar时,通过: 双击jar:它启动,但无法加载包含库的JNI代码,因此被卡住。 有人能告诉我这三种情况有什么不同吗?

    • 是否可以在导出的独立Java应用程序中捆绑JRE?我们有一个非常具体的要求,即在没有安装最新Java版本的机器上运行独立的AnyLogicJava应用程序,并且由于公司的IT政策,我们将无法这样做 通过一些研究,我发现一些网站声称他们已经在Windows和Mac上这样做了。 在OSX上使用捆绑的JREhttps://wiki.openjdk.java.net/display/MacOSXPort/

    • 我正在尝试使用Windows中的docker工具箱运行自定义java swing GUI。我现在想要容器化这个应用程序,但是得到以下错误: 我正在运行一个DockerFile。设置为: 3)复制到包含JAR的文件夹上 4)运行docker容器,该容器将启动GUI(不是linux前端,最好不使用vnc)。 我将Xlaunch用于windows上的终端,并且能够使用它在docker上启动一个firef

    • 问题内容: 我尝试使用下面的代码来运行我从Apple脚本创建的独立实用程序应用程序,但是出现“无文件或目录不存在”错误。 我在项目,dist,父目录中放置了相同的副本(用于测试),但没有帮助。 因此,我的问题是:我对运行该应用程序的调用是否不好(也许是因为它不是Windows exe)?如何从Java运行Mac App? 谢谢 问题答案: Mac App Bunde不是可执行文件,而是具有特殊结构

    • 我一直在尝试为javafx编译和运行这个示例 然后我试着运行这个例子 $java--mode-path"PATH_TO_FX":mods-m hellofx/hellofx。HelloFX 启动层初始化时出错java.nio.file.InvalidPathException:非法字符 所以我认为通往FX的路径是个问题,但事实并非如此。 $java——模块路径src:mods-m hellofx/

    • 问题内容: 我正在用Java开发使用Lua脚本的Android游戏。为了执行这些脚本,我将LuaJ与Java的ScriptEngine类一起使用。例如… 但是,Android显然不支持此功能(这与android没有完整的JVM有关,我在某处读过)。有什么方法可以在Android上使用Lua脚本吗?也许有一个LuaJ替代方案?也许有一种直接使用LuaJ编译和执行Lua脚本的方法(尽管我看不到如何)。