我在尝试运行我创建的Java程序以及Jet Control Panel和JetPack 2时遇到了这个奇怪的错误。我试图在不同的计算机上运行它,结果相同。
答案 0 :(得分:2)
在configuring the JET Runtime的手册页中,JetPackII附带了一个关于system files的部分,它告诉您JET包含自己的Java运行时库副本。
错误消息告诉您使用JET打包的Java Runtime是过期的评估版本。这表明您的JET版本是已过期的评估版本。
有几种方法可以解决此错误:
Excelsior JET是一个工具包和完整的运行时环境,用于优化,部署和运行用Java编程语言编写的应用程序。
答案 1 :(得分:0)
也许你可以尝试重新安装java运行时环境(jre)然后再次导出它。您是否尝试过运行它而不将其放入exe中?
答案 2 :(得分:0)
编译时,大多数Java应用程序最终成为一系列.class
文件(包含字节码),然后存档到.jar
(java存档)文件中。此JAR文件实际上是一个zip格式文件,对应于某些布局和压缩规范。为了运行,必须将该JAR文件提供给Java运行时环境(JRE),该环境包含库和虚拟机(JVM),并且通常直接从Oracle服务器下载。
与jar
文件不同,exe
文件包含Windows可以在没有JRE的情况下本机运行的代码。通过输出.exe
文件,IDE可以执行以下两项操作之一:
添加" stub"找到用户已经安装的JRE,然后将该exe
文件中打包为Java字节码的其余应用程序提供给它。如果找不到JRE,程序将失败。一个例子是可能已解散的JSmooth library。
使用整个Java Runtime Environment本身打包应用程序,这使得它可以执行Java字节码,而不管用户系统上已经安装了什么。您可能必须购买许可证以在您的应用程序旁边重新分发JRE(可能是Oracle的官方JRE,也可能不是)。 这可能是你在这里发生的事情。
为了帮助确认是这种情况,请发布您正在使用的IDE的名称,并检查exe
- 生成命令下有关重新分发,许可证,运行时和JRE / JVM的选项
StackOverflow确实有一些关于"converting a Java program into a .exe file"的现有答案,您可能会发现这些答案对上下文有帮助。