Java jar打包成exe应用程序,可在无JDK/JRE环境下运行

参考路径:https://www.jb51.net/article/194317.htm

1.将自己的程序打包成jar包

将自己的程序打包成jar包,java -jar jar包  没有问题之后,将cmd窗口关闭进行后续操作

2.下载安装exe4j和inno setup complier

 exe4j:将jar转换成exe的工具

链接: 百度网盘 请输入提取码

提取码: smb7

注意:exe4j要用注册码激活,不然会有弹窗

注册码:

A-XVK258563F-1p4lv7mg7sav

A-XVK209982F-1y0i3h4ywx2h1

A-XVK267351F-dpurrhnyarva

inno setup:将jre和exe打包成一个安装程序的工具,

链接: 百度网盘 请输入提取码

提取码: 9hzj

这两个工具自己安装之后进行使用:

3. 打开安装好的exe4j软件,直接下一步进入界面。

  4. 选择“jar in exe” mode 选项,下一步。

 

  5. 输入名称和输出路径,下一步。

 6. 选择GUI,输入应用名称,设置应用图标,下一步。

  注意:这里选择GUI程序,并且勾选下面的Allow -console

7. 选中“32-bit or 64-bit”,勾选“generate 64-bit executable”,下一步

  注意:因为医院的系统有XP 32位,win7 win8 64位的,所以我是分两次打的exe   一个EMRBrower.exe和EMRBrower32.exe  若是打64位的就勾选,若是打32位的就不用勾选

8. 再VM Parameters输入“ -Dappdir=${EXE4J_EXEDIR} ”,点击绿色+号

 9. 选择jar包路径,自己的jar包,OK。

 10. 选择应用程序的主类(含main方法),下一步。

 注意:这里一定选择第三个JarLauncher,我第一次的时候选择的是最后一个,运行不了报错提示找不类

11. 选择jdk版本。

12. 选中“ Search sequence ”,选中绿色+号添加jre目录。

13. 选择“ Directory ”,目录输入“ .\jre ”,下一步。

14. 选择“ Client hotspot VM ”,下一步。

 15. 一直下一步,等待绿色进度条完成,在输出目录里面多了一个可运行程序

 16. 点击“ Click Here to Start the Application ”即可运行程序

注意:这里最好不要点,因为这个是运行程序,之后全部弄完之后再运行的时候可能端口冲突,导致最后的exe运行不起来

 17. 打开第二个软件:inno setup complier软件,File -> new,下一步,填写配置,应用名称,版本等,下一步。

 18. 默认,下一步。

 19. 选择exe程序,下一步。

注意:这里选择第一个软件exe4j生成的那个exe

 20. 默认,下一步。

21. 继续下一步。

22. 选择语言,下一步。

  23. 选择输出路径,输入应用名称,下一步。

注意:这个应用名称就是发给别人的那个安装的exe了

24. 下一步,完成,先不运行脚本文件。

注意:到这一步一定不要点击ok  点击cancle   先不运行,需要修改脚本文件哦

 25. 添加jre目录。

#define MyJreName "jre"

  31. 在最后一行添加jre目录。

Source: "自己本地JRE路径\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

比如我的配置是:Source: "D:\software\Java\jdk1.8.0_291\jre\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

 32. 编译运行,会提示保存当前脚本,随便起个名字,下次还可以继续用

  

  

 保存配置文件,下次直接在配置文件的基础上修改就行了,再生成新的exe

33. 当绿色滚动条结束后,桌面会多了一个demo1.exe文件。

34. 也同时会跳出一个安装的,因为程序帮你自动启动生成的安装程序了,安装就可以了,安装的时候记得勾选创建快捷方式,这个就是最后的程序了,双击运行就可以看到结果了,把demo1.exe文件给别人安装,就都可以看到自己的程序了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

*重点回顾:

1、关于调用电子病历EMR.exe,jar包对应的这个小程序是这样写的:

@RequestMapping("/EMR")
public void EMR(HttpServletRequest request)throws Exception
{
    System.out.println("EMR........");
    String url = request.getParameter("url");
    String param0 = request.getParameter("param0");
    String param1 = request.getParameter("param1");
    String[] cmd = new String[]{url,param0,param1};
    final Process proc = getRuntime().exec(cmd);
    System.out.println(proc);
}

写了一个HTTP Web接口,程序运行起来想要调用电子病历调阅路径就是:
http://localhost:9998/EMR?url=D:/extraExePacs/EMR/EMRBROWSER.EXE&param0=0000536436&param1=00220328001
在浏览器上面访问直接可以弹出电子病历调阅的窗口哦
或者前端直接ajax请求

   $.ajax({
    url:"http://localhost:9998/EMR",
    method:'get',
    data:{url:"D:\\EMR\\EMRBROWSER.EXE",param0:rcode,param1:zhuyuanId}
  })

2、解决XP系统32位 安装不了EMRBrower.exe的问题

因为医院的好多电脑是XP系统的,一开始打了一个EMRBrower.exe,在XP上面运行不了

所以这个需要发一个32位的EMRBrower.exe,这个时候我去用exe4j打包运行发现报JAVA_HOME 32位指定错误,所以

首先需要在自己的电脑上安装32位jdk   oracle上面下载太慢,只有随便找的一个  解压后是一个JDK1.8的文件夹   修改环境变量 JAVA_HOME为这个D:\software\Java\JDK1.8   然后cmd运行 java -version  发现还是64位的没有换,神奇,百度了一下说:

那么我需要把Path最前面的C:\ProgramData\Oracle\Java\javapath;删除

这样才能对JAVA_HOME修改来切换需要的jdk环境。

这段是我复制过来的,找到PATH,把“C:\ProgramData\Oracle\Java\javapath;”删掉,友情提醒,最好先把整个path内容COPY一份,免得手抖删错了。

删除之后,听说会出现如下错误(但是我没有出现):

 之后就替换成功了

然后就去程序中把jdk换掉,反正不知道有没有用处,反正是我的电脑环境是换成了jdk1.8 32位的了

 之后点击ok  就去运行程序,运行成功了,之后又去maven clean   maven package   打包   发现Console控制台还是jdk1.8 64位的,不管了,之后就打了一个包,再用上面的步骤生成了一个EMRBrower32.exe包

再用第二个工具打包的时候有遇到了问题,一直提示EMRBrower32.exe程序被占用,我就把EMRBrower32.exe直接粘贴出来不在原来的文件夹中,重新用InnoSetup重新打包 ,之后就成功了,哈哈,之后将重命名后的EMRBrower32.exe发送给医院现场同事,在XP系统上面可以安装成功了,也可以调用电子病历调阅了

4、打包的EMRBrower.exe文件 安装之后  在桌面生成快捷方式,需要将这个设置为开机启动,将exe程序的快捷方式放到C:\Users\Lenovo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup   启动项文件夹中

医院电脑启动后就会执行这个,之后就可以电子病历调阅了

5、解决打的exe包安装之后提示没有JVM环境的问题

需要重新打包,原因是用第一个exe4j打包的时候这个没有写:-Dappdir=${EXE4J_EXEDIR}

 

 或者忘记选择这个Client hotspot VM 

 

 或者 在最后一行添加jre目录。
Source: "自己本地JRE路径\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

\*最好有

最好的办法是再打一遍exe包

  • 7
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以使用JavaFX提供的工具javapackager来打包JavaFX应用程序。 以下是使用javapackager打包JavaFX应用程序的步骤: 1. 指定应用程序的入口点类和应用程序图标 ```bash javapackager -createjar -appclass com.example.Main -srcdir /path/to/src -outdir /path/to/out -outfile MyApp.jar -icon /path/to/icon.png ``` 其中,`com.example.Main`是您的应用程序的入口点类,`/path/to/src`是您的应用程序源代码的路径,`/path/to/out`是输出JAR文件的路径,`MyApp.jar`是输出的JAR文件名,`/path/to/icon.png`是应用程序的图标路径。 2. 打包应用程序为本地平台的本地安装程序(例如,Windows的EXE文件) ```bash javapackager -deploy -native exe -srcdir /path/to/out -outdir /path/to/deploy -outfile MyAppInstaller -name "My App" -title "My App" -BappVersion=1.0.0 -Bicon=/path/to/icon.png -Bruntime=/path/to/jre -BshortcutHint=false -v ``` 其中,`exe`表示打包为Windows的EXE文件,`/path/to/out`是JAR文件的输出路径,`/path/to/deploy`是安装程序的输出路径,`MyAppInstaller`是安装程序的文件名,`"My App"`是应用程序的名称和标题,`-BappVersion=1.0.0`指定应用程序的版本号,`-Bicon=/path/to/icon.png`指定应用程序的图标路径,`-Bruntime=/path/to/jre`指定Java运行环境的路径,`-BshortcutHint=false`禁用安装程序的桌面快捷方式,`-v`打印详细输出信息。 请注意,您需要将`/path/to/jre`替换为您的Java运行环境的实际路径。 希望这可以帮助您打包JavaFX应用程序为本地平台的本地安装程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值