作者oikl1268 (迷路子)
看板java
标题Re: [问题] 在没安装jdk的电脑跑jar
时间Sat Jul 28 15:22:40 2012
包成runnable jar有个问题就是在没有安装jdk的电脑跑不了
我自己的做法是把包好的jar变成exe档
然後连jre一起包给对方,档案会因为jre变得很大,但可以免除叫对方安装jdk的问题
我使用的是exe4j这套软体
非免费软体,但有试用版 .
也有暗黑版
做法:安装完後执行
1.welcome 第一次执行选择next就好
2.project type 请事先先用eclipse把java专案包成jar档 不是runnable jar
选第"jar in exe"mode
3.application info 第一栏随便打 第二栏选择你输出exe档的储存位置
4.executable info 如果是console 选console就好 有用到gui就选gui
executable name是你输出成exe档的名称
icon是你输出的exe显示的icon 其他不用动
5.java invocation class path先按右边的+读取你包好的jar档
然後在main class选择你jar中的main class
6.jre minimum 和 maximum是你的java程式需求的jre版本号,如果你最少要1.7才能跑
在minimum就输入1.7 maximum可打可不打
之後选advanced options→search sequence
先把search sequence中的内容清空 并在jar档所在的资料夹下创建"jre7"资料夹
这个资料夹名称取决於你要求最低版本的jre,如果是1.6,就打"jre6"
然後回到exe4j,按右边的+,并选择你刚刚创建的jre资料夹位置
应该会看到在search sequence多了一个 "Directory .\jre7"
请确认这个路径是 .\ 开头
确认完後按next 在preferred vm选择client hotspot vm
7.8.9都一直按next就好 最後就会输出exe
10.整个执行完後选择finish会问你要不要储存这个exe4j专案,如果需要多次修改的情况
可以把exe4j专案储存,之後再执行exe4j时就可以在1.的时候选择open读取专案了
最後一步是请将位於你C:\Program\java的jre资料夹复制到exe档的所在资料夹
我自己复制时是使用32bit版本的jre才可以正确执行
接下来就是依照你的程式需求对jre进行瘦身,把里面不需要的jar删掉
如果不确定哪个jar不需要,只要删掉後仍然可以正确启动程式就表示你的程式不需要
虽然最後你这个程式仍然会很庞大(约75~100mb)
但某方面来说,可以不用特地教对方安装jre,尤其是大量发布时
这是我把java程式发给没安装jdk的人的做法
※ 引述《r801129 (阿嘎)》之铭言:
: 本身我的电脑有安装jdk, 今天帮朋友写一支JAVA程式
: 我用eclipse包成runnable jar file, 在我的电脑可以跑
: 传给他跑时发现不能执行, 自己google很多资料, 用了很多方法
: 例如: 转成exe, 更改MANIFEST.MF 还是不能 最後请我朋友安装jdk後就能执行了
: 後来我又用一个方法: 把jdk跟jar放在一起, 写了一个startup.bat去执行
: 我朋友电脑显示 "不是正确的win32应用程式"
: 请问有什麽办法可以让jar在没有安装jdk的环境下执行?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.163.154.198
1F:→ dennisxkimo:不用这麽麻烦,还要用"试用版"软体来打包 07/28 21:41
2F:→ dennisxkimo:jre目录跟jar放在同个资料夹内,批次执行+开头SET环境 07/28 21:45
3F:→ dennisxkimo:不是正确32...那个问题,你是用Java7_64写的吗? 07/28 21:54
4F:→ dennisxkimo:如果对方是32位元系统,你丢jdk7_64的给他run会有问题 07/28 21:57
5F:→ dennisxkimo:我是jdk6(32or64)给对方jre+jar+批次+批次开头SET环境 07/28 21:59
6F:推 pupuliao:我用 eclipse 打包的JAR 好像只要有安装JAVA 就可以使用? 07/29 00:00
8F:→ pupuliao:这是你们所说的JDK 吗? 还是JRE ? 07/29 00:05
9F:推 dennisxkimo:可以先了解什麽是JDK跟JRE 07/29 00:21
10F:推 pupuliao:我知道 JDK 是JAVA 开发工具包,一般人不需要安装 07/29 00:29
11F:→ pupuliao:而我前面贴的网址里面说明,应该是属於 JRE,是执行环境 07/29 00:31
12F:→ pupuliao:依照我的实验 执行 JAR 不需要 安装JDK 只要安装JRE 07/29 00:32
13F:→ dennisxkimo:我不是原po啦~我只是提供个人常用的作法,针对"主题" 07/29 01:17
14F:推 TaiwanXDman:我是用Jsmooth包的 07/31 15:43