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

如何将JRE绑定到Java应用程序的EXE中?Launch4j表示“运行时丢失或损坏。”

梁研
2023-03-14

我不熟悉Java编程,但通常熟悉一切的工作原理。我希望能够将jar文件和jre都放入windows可执行文件(exe)中,这样当我分发它时,客户端就不需要安装jre。我应该使用什么程序?

我已经启动了4j,它似乎正是我想要的,但当我尝试运行应用程序时,我得到“此应用程序被配置为使用捆绑Java运行时环境,但运行时丢失或损坏。”

我希望我的应用程序只是一个可运行的exe,而不是一个安装程序。至少,有人能告诉我如何正确地将JRE与launch4j捆绑在一起吗?

共有3个答案

方宏才
2023-03-14

我从未使用过Launch4J产品,祝你在正确配置它时好运。

看起来您可以在Sourceforge上的讨论论坛上获得其他提示

其他建议:

我从IBM(WebSphere)和Oracle中看到的大多数产品只是在安装目录下提取一个JRE,并配置启动批处理命令以使用安装的JRE。基本上,JRE和jar文件将一次性安装。

安装exe通常检查是否已经安装,如果发现已经安装,则跳过该步骤。这对于升级jar文件非常有用。

本地安装还可以解决客户安装自己的JRE的问题,因为JRE可能不兼容或包含bug。这样,您就可以处理已知的JRE版本。

如果您的应用程序没有图形组件,则Excelsior路由是可以的(已经有一段时间了,该限制可能已经改变)。还有其他限制,但是你可能最好只是在一个可执行安装程序中分发一个带有代码的JRE。

颜畅
2023-03-14

lanch4j打包的jre到exe的简单方法是使用wrap。

warp-packer --arch windows-x64 --input_dir mycrt --exec run.bat --output single.exe

然后在启动exe时停止cmd windows。

editbin /subsystem:windows

经纱:https://github.com/dgiagio/warp

Editbin:由VS安装

演示:

巴英韶
2023-03-14

我捆绑JRE的唯一方法是使用Launch4J和Inno安装编译器。

首先,在与输出文件(.exe)相同的目录中创建一个jre6文件夹(例如)。

然后将JRE从系统复制到jre6文件夹中。

然后打开Launch4J并设置捆绑JRE路径-只需键入jre6。然后单击构建按钮(显然,在您输入了所有其他参数之后——但是您需要在JRE选项卡上输入的唯一值是绑定的JRE路径值。)

我本以为这会起作用,但如果你再移动。exe到新位置(因此它不再与jre6文件夹位于同一位置)您将获得以下信息:此应用程序已配置为使用捆绑的Java运行时环境,但在尝试运行该应用程序时出现运行时丢失或损坏的错误。。。

我已经玩了一整天了,我不可能让Launch4J将JRE包含在应用程序中。exe文件。在我看来真的很糟糕,因为他们的文档似乎根本没有提及这个问题。

所以我要解决的是使用Inno安装编译器(ISC)。此应用程序用于包装您的文件。exe作为Windows安装程序文件。因此,我在ISC脚本中添加了一个设置,将JRE复制到安装程序包中。我添加到脚本中的行(在[Files]部分中)是:

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs

...有点变通,但成功了。

重复以上所有步骤,你应该被分类。

 类似资料:
  • 我是Java编程的新手,但我对所有的工作方式都很熟悉。我希望能够将jar文件和jre都放入windows可执行文件(exe),这样当我分发它时,客户机就不需要安装jre。我应该用什么程序? 我有launch4j,它似乎完全符合我的要求,但当我尝试运行应用程序时,我得到的是“这个应用程序被配置为使用捆绑的Java运行时环境,但运行时丢失或损坏了。” 我希望我的应用程序只是一个运行的exe,而不是一个

  • 但是,当我将exe文件复制到其他地方并运行它时,我会得到错误消息。 我在SO上搜索,发现了以下问题,但无法使我的应用程序与那里给出的建议工作。 如何将JRE绑定到Java应用程序的EXE中?Launch4j表示“运行时丢失或损坏”。 如有任何帮助,将不胜感激。

  • 我用的是edu。seis理学学士。启动4J插件,使用gradle构建脚本构建可分发的应用程序。我正试图用一个捆绑的JRE来制作这些。 这是格雷德尔的剧本 令人沮丧的是,这创建了一个运行的应用程序(由gradle任务createExe创建的exe),但显然没有捆绑在/旁边的JRE,大概是因为它运行是因为它返回到使用系统jre,这使得测试变得困难。如果我把一个故意损坏的jre放在 /jre/它似乎仍然

  • Java在k:\test\jre7\bin\Java.exe中,我的jar是k:\test\pllsolver-0.2alpha.jar 此外,我还不知道这是否会成为一个问题,但可执行文件和数据/需要在同一个目录中。我计划稍后做更好的pathing,但我对Windows ENV变量没有一个清晰的理解。

  • 我转换了一个java程序(猜数字游戏)到. jar,但它没有双击运行,所以,运行它在cmd(它的工作)现在我转换为. exe使用启动4j,但应用程序也不工作。救命啊!

  • 只是为了说清楚。我可以运行.exe文件而没有任何错误,但是当我把它交给我朋友时,他们得到了上面提到的错误。