如何把一个Java程序打包成可执行文件?

时间:2022-12-30 10:07:11
最近在J2SE环境下开发了个程序,组长要我们把这个程序给打包,我们用的机器差的要死,跑不起JBuilder,在网上查了好久,也没查到很明白说明打包成exe可执行文件的方法来。希望高手能指点下,不胜感激!!

24 个解决方案

#1


java 程序不建议打包成可执行文件

#2


.bat ,hehe

#3


.bat是啥?能说下具体怎么做吗?

为什么Java程序不好打包成可执行文件?

#4


下载一个exe4j来生成exe,这个我感觉真不错。。。

#5


exe4j确实可以打包成exe,不过,还是需要在已经配好jre的环境里运行,如果拿到刚装好系统的机子上,还是不能运行

#6


我也想问问这个问题!!!那要如何生成执行程序运行??初学多指教

#7


关注中 ...

#8


叫你打包是叫你把他们作成*.jar文件,要在里面指明主类(含main()),在jdk的demo里面有很多这样的包,你自己看看

#9


网上应该有关于这方面的大量的介绍,搜一搜吧
我以前做过一个,大概就是先把源程序用jar打包,然后到
http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm
下载下来的文件是一个名JavaLauncher.zip的压缩包,解压后的目录结构如下所示:

source目录包含了JavaLauncher的源程序,是用C语言写的
changes.txt是新版的修改说明
launch.exe是主程序
launcher.cfg是配置文件
readme.txt是一些说明和示例

我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下:

.

.\java1.4.2\jre\bin\javaw.exe 

-jar myswt.jar

l           第一行设置指向JAR包myswt.jar的目录,由于launch.exe和myswt.jar同在一个目录,所以用"."即当前目录。

l           第二行设置指向jre\bin\javaw.exe的路径。在上一小节(7.1.4节)已将jre目录复制到了java1.4.2子目录中

配置好launcher.cfg后,双击launch.exe即可运行java应用程序。

如果仔佃研究eclipse的启动方式,发现eclipse和JavaLauncher的原理一样:eclipse.exe相当于launch.exe,startup.jar相当于myswt.jar。只不过eclipse.exe不象launch.exe要具有通用性,所以它没有*.cfg这样的配置文件,而是将启动信息固化在eclipse.exe中。

另外如果你没有配置java环境的话,需要装上jre才能运行

#10


jbuilder也可以生成.exe的文件

#11


打包是 打成jar,不是exe

#12


用exe4J就很好的了.

--------------------
exe4j确实可以打包成exe,不过,还是需要在已经配好jre的环境里运行,如果拿到刚装好系统的机子上,还是不能运行
-----------------------

把JRE目录考到你的jar文件目录来,在exe4j里设置用该目录下的JRE目录中的java命令,把所有的外部要用的第三方JAR包都打进来.给客户时,直接将这个目录制成一个setup安装程序,客户用的时候只要SETUP一下,然后桌面,程序组里都有快捷方式了.

你的程序如果用上looks-1.3.1.jar包把feel和look包装一下,有些经过这样处理,有些程序感觉不出来是JAVA程序了

我最近就做了一个这样的应用,这样做也是很无奈的.感觉好象是把一个JAVA做的东西躲躲藏藏的拿出去让别不知道这是JAVA做的,但是没办法,那个客户就是不愿意接受还要装JAVA虚拟机这样的麻烦事.弄成这样,他拿到任何一台机上只要setup一下,就可以用了,大家都开心了

#13


我那老板的意思就是,把现在做的包装成exe可执行文件,然后放到其他的没有JDK环境的机器上也能运行。
cql0007说的方法,我没看明白,“把JRE目录考到你的jar文件目录来,在exe4j里设置用该目录下的JRE目录中的java命令,把所有的外部要用的第三方JAR包都打进来.”能详细说明下吗?不胜感激。
昨天生病了没来上班,不好意思。

#14


先准备一个目录,把你的jar包考进去,把你的机器上的JRE目录考进去,例如我的机器是:C:\Program Files\Java\j2re1.4.1这个目录.只要把这个目录的bin和lib目录考进去就可以了.这样就是java程序的运行环境了.


先用exe4j把你的jar包压成一个EXE文件,在exe4j中注意把所有要用JAVA包都打进去,然后在JRE那项中,有个search sequence的选项,把你这个目录中的BIN目录添加进去,这样以后执行这个程序的时候,就会直接去找这个你自己目录中的java.exe了,不需要系统再安装JDK了

然后再找个setup制作程序,把这整个目录制作成一个setup.exe.
这样用户一运行那个setup.exe,就把这整个目录都考进用户电脑了,客户就不用再另外安装JDK了

#15


用批处理文件.bat,方便简单!

#16


这个问题,我在JAVA版中见过很多次了,我自己之前也研究过,用过什么exe4j,JSmooth,JShrink,Launch4J等五六个同类软件,发现都是NativeJ最好,因为NativeJ有选项可以把jre也一并合并在一个exe文件中,而且,其它软件生成的exe文件,其实可以用winrar来解压的,只有NativeJ不是这样,他编译出来的EXE是真正的EXE文件,就算客户机子上没装JRE,也照样能运行。

#17


cql0007,我用了你的方法,但在最后创建的时候老是说:Compilation failed.Reason:java.io.FileNotFoundException:d:\.test\test.jar(系统找不到指定的目录)

这是怎么回事?我是按照网上有人说的方法来用exe4j的啊

#18


这样的EXE能在LIUNX和UNIX系统下运行吗?

#19


用installAnyWhere 就ok了嘛

#20


用exe4j还是不行,最后就弹出个框框,里面的内容是:This executable was created with an
 evaluation vertion of exe4j
然后就什么都没有了,这到底是怎么回事呢?

#21


jsmooth不错

#22


直接用文本编辑器,编写一行:java  yourclassname
存成.bat文件,双击则可以直接运行了

#23


晕阿,这么多说法,哪一位总结发言一下阿。。。

#24


啊哦 灭人来了

#1


java 程序不建议打包成可执行文件

#2


.bat ,hehe

#3


.bat是啥?能说下具体怎么做吗?

为什么Java程序不好打包成可执行文件?

#4


下载一个exe4j来生成exe,这个我感觉真不错。。。

#5


exe4j确实可以打包成exe,不过,还是需要在已经配好jre的环境里运行,如果拿到刚装好系统的机子上,还是不能运行

#6


我也想问问这个问题!!!那要如何生成执行程序运行??初学多指教

#7


关注中 ...

#8


叫你打包是叫你把他们作成*.jar文件,要在里面指明主类(含main()),在jdk的demo里面有很多这样的包,你自己看看

#9


网上应该有关于这方面的大量的介绍,搜一搜吧
我以前做过一个,大概就是先把源程序用jar打包,然后到
http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm
下载下来的文件是一个名JavaLauncher.zip的压缩包,解压后的目录结构如下所示:

source目录包含了JavaLauncher的源程序,是用C语言写的
changes.txt是新版的修改说明
launch.exe是主程序
launcher.cfg是配置文件
readme.txt是一些说明和示例

我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下:

.

.\java1.4.2\jre\bin\javaw.exe 

-jar myswt.jar

l           第一行设置指向JAR包myswt.jar的目录,由于launch.exe和myswt.jar同在一个目录,所以用"."即当前目录。

l           第二行设置指向jre\bin\javaw.exe的路径。在上一小节(7.1.4节)已将jre目录复制到了java1.4.2子目录中

配置好launcher.cfg后,双击launch.exe即可运行java应用程序。

如果仔佃研究eclipse的启动方式,发现eclipse和JavaLauncher的原理一样:eclipse.exe相当于launch.exe,startup.jar相当于myswt.jar。只不过eclipse.exe不象launch.exe要具有通用性,所以它没有*.cfg这样的配置文件,而是将启动信息固化在eclipse.exe中。

另外如果你没有配置java环境的话,需要装上jre才能运行

#10


jbuilder也可以生成.exe的文件

#11


打包是 打成jar,不是exe

#12


用exe4J就很好的了.

--------------------
exe4j确实可以打包成exe,不过,还是需要在已经配好jre的环境里运行,如果拿到刚装好系统的机子上,还是不能运行
-----------------------

把JRE目录考到你的jar文件目录来,在exe4j里设置用该目录下的JRE目录中的java命令,把所有的外部要用的第三方JAR包都打进来.给客户时,直接将这个目录制成一个setup安装程序,客户用的时候只要SETUP一下,然后桌面,程序组里都有快捷方式了.

你的程序如果用上looks-1.3.1.jar包把feel和look包装一下,有些经过这样处理,有些程序感觉不出来是JAVA程序了

我最近就做了一个这样的应用,这样做也是很无奈的.感觉好象是把一个JAVA做的东西躲躲藏藏的拿出去让别不知道这是JAVA做的,但是没办法,那个客户就是不愿意接受还要装JAVA虚拟机这样的麻烦事.弄成这样,他拿到任何一台机上只要setup一下,就可以用了,大家都开心了

#13


我那老板的意思就是,把现在做的包装成exe可执行文件,然后放到其他的没有JDK环境的机器上也能运行。
cql0007说的方法,我没看明白,“把JRE目录考到你的jar文件目录来,在exe4j里设置用该目录下的JRE目录中的java命令,把所有的外部要用的第三方JAR包都打进来.”能详细说明下吗?不胜感激。
昨天生病了没来上班,不好意思。

#14


先准备一个目录,把你的jar包考进去,把你的机器上的JRE目录考进去,例如我的机器是:C:\Program Files\Java\j2re1.4.1这个目录.只要把这个目录的bin和lib目录考进去就可以了.这样就是java程序的运行环境了.


先用exe4j把你的jar包压成一个EXE文件,在exe4j中注意把所有要用JAVA包都打进去,然后在JRE那项中,有个search sequence的选项,把你这个目录中的BIN目录添加进去,这样以后执行这个程序的时候,就会直接去找这个你自己目录中的java.exe了,不需要系统再安装JDK了

然后再找个setup制作程序,把这整个目录制作成一个setup.exe.
这样用户一运行那个setup.exe,就把这整个目录都考进用户电脑了,客户就不用再另外安装JDK了

#15


用批处理文件.bat,方便简单!

#16


这个问题,我在JAVA版中见过很多次了,我自己之前也研究过,用过什么exe4j,JSmooth,JShrink,Launch4J等五六个同类软件,发现都是NativeJ最好,因为NativeJ有选项可以把jre也一并合并在一个exe文件中,而且,其它软件生成的exe文件,其实可以用winrar来解压的,只有NativeJ不是这样,他编译出来的EXE是真正的EXE文件,就算客户机子上没装JRE,也照样能运行。

#17


cql0007,我用了你的方法,但在最后创建的时候老是说:Compilation failed.Reason:java.io.FileNotFoundException:d:\.test\test.jar(系统找不到指定的目录)

这是怎么回事?我是按照网上有人说的方法来用exe4j的啊

#18


这样的EXE能在LIUNX和UNIX系统下运行吗?

#19


用installAnyWhere 就ok了嘛

#20


用exe4j还是不行,最后就弹出个框框,里面的内容是:This executable was created with an
 evaluation vertion of exe4j
然后就什么都没有了,这到底是怎么回事呢?

#21


jsmooth不错

#22


直接用文本编辑器,编写一行:java  yourclassname
存成.bat文件,双击则可以直接运行了

#23


晕阿,这么多说法,哪一位总结发言一下阿。。。

#24


啊哦 灭人来了