易客

Explore JAVA

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  4 随笔 :: 1 文章 :: 52 评论 :: 0 Trackbacks

本文首先默认你已经拥有可用的jar文件和exe4j程序。
下面开始详述步骤:
1.welcome-打开exe4j

如图,如果你有保存过的项目打包配置文件,那么点>>open打开即可。如果没有点>>next.

2.Project type-选择打包方式

由于我们讲的是打包jar生成exe,所以选“jar in exe”mode,这种方式可以把一个java应用程序打包成一个exe文件,但是不能将除jar以外的附加文件打包进去。然后>>next

3. Application info-配置生成的应用程序的信息

设置你的应用程序的名称和将要生成的可执行文件的输出文件夹。然后>>next.

4.Executable info -配置可执行文件的参数

type项根据你的程序的类型确定,本例为GUI程序;接下来是文件名、可执行文件的图标、是否只允许同时刻只能运行一个应用程序、当主线程有误时是否抛出异常、更改工作目录(相对于可执行文件)。然后点>>advanced options>>version info

5.version info-设置版本信息


6.java invocation-配置运行环境


先配置class path,将此项内原有的配置全部删除,然后点“+”将你导出的主程序JAR包和第三方依赖包逐一添加到类路径中,这里强烈建议使用从你项目发布目录出发的相对路径,也就是说要从上面第3步图片中的输出目录位置出发。例如:你将主程序jar包放在输出目录根下,点击添加后在上边的class path框里显示为“.\xxxxx.jar”。如果你的第三方jar包在输出目录根下的lib目录下,添加后显示为“.\lib\xxxx.jar”


然后在上边的general中点浏览按钮,exe4j会自动找到你应用程序的入口-main class。
[2014-3-23]以下是旧时的理解,应该是有问题的:
在下边的advanced options中选native libraries设置,此功能是添加你程序用到的外部jar包文件,这个我一直没用过,因为我做什么事都喜欢集中,所以在程序中用到的所有外部包全整合到jdk/jre里了,这样在给客户安装程序时只要把程序直接给他考过去就可以用了,不用再安装其它东西,他们会很喜欢的哦,毕竟用户不是搞程序设计的嘛。
不过将第三方包放在jre里当时确是这么做的。

7.jre-配置jre

在这里配置你的jre版本类型,然后再看>>advanced option>>search sequence


在这里来配置你运行程序所需的jre/jdk的位置,如果你只是打包后本机运行,直接指定到你本机的jre/jdk目录即可,如果你打包后的程序要在别的客户机上运行,而该机又没装jdk,这时我们就要想另一种方法了。从客户的角度讲,拿到手的软件在安装过程中应尽可能少的给客户带来繁琐的安装事项,最好只点一下鼠标就能自动安装。因此,我们要让用户省去安装jdk的麻烦。要解决这个问题,我们可以把安装好的jdk复本放置在最终产品的根目录下,然后在上图中添加这个jdk复本为程序的运行环境

search registty 可以扫描已经安装的jdk/jre,我们选择directory,为程序指定一个jdk目录,只需定位到jdk根目录即可,如上图。 然后>>next
这里要说明一点,用eclipse开发的程序只要一个jre就行了,jdk不用的,所以我是把jre打包进exe运行环境的,这样的话在java version下边的那个允许使用jre beta版的选项就要选中了。
8.preferred vm-选择虚拟机

这个根据具体情况选择,本例为client. 然后>>next

9.splash screen -启动画面

在这里可以设置你的启动界面,不过好像只认gif、png类型的图片,status line and  version line 可以在position text lines visually预览界面中调整其显示位置。然后>>next,接下来是选择语言界面,根据自己情况选择。然后>>next

10.compile executable-编译生成可执行文件

自动跳转至:

在这里可以点击运行生成的可执行文件,也可以将本次配置方案保存起来以备后用。

好,到此整个使用过程告以段落。可能某些操作写得有不当之处,还请各位更正补充。


 TonyLee.

posted on 2007-12-26 10:19 y6cn 阅读(25120) 评论(42)  编辑  收藏

评论

# re: 使用exe4j打包jar生成exe常用设置 2008-02-19 15:28 lindabang
兄弟能教我怎样做jar文件吗?
谢谢!
lindabang@163.com  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-02-24 14:45 y6cn
@lindabang
其实eclipse里就有导出为jar文件这一个功能。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-03-17 16:27 jardan
哥们,如果项目中用到其他JAR包怎么加入?
我用advanced option加入到native lib也不行呢。怎么拾掇?  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-03-17 17:44 y6cn
你把这些jar包放在jdk/jre的lib/ext里就行了  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-04-03 11:38 luawkk@hotmail.com
我的总是出现 An internal error occurred (error code : 16) 这个对话框 是那里设置的不正确啊,谢谢 各位弟兄们了!  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-04-11 09:04 y6cn
会不会是你程序的错误  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-04-13 12:33 lkp
用了一下,不过老是报错,如下
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at assistant.Setting.getBackGrounMucisProerties(Setting.java:35)
at com.lkp.ellk.Ellk.setProperties(Ellk.java:76)
at com.lkp.ellk.Ellk.<init>(Ellk.java:58)
at com.lkp.ellk.Ellk.main(Ellk.java:259)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)

不知道该怎么改了
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-04-15 21:13 y6cn
at assistant.Setting.getBackGrounMucisProerties(Setting.java:35)
at com.lkp.ellk.Ellk.setProperties(Ellk.java:76)
at com.lkp.ellk.Ellk.<init>(Ellk.java:58)
at com.lkp.ellk.Ellk.main(Ellk.java:259)   回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-05-16 14:59 yangzhongkun
我选的是控制台输出,但在图片处就总是出错
Compilation failed.Reason; java.io.IOException; icon file does not contain icon data
请问这是什么错误啊,图片格式是.ico 的啊。。。
郁闷。。。。。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[未登录] 2008-05-16 23:46 y6cn
你的ico图片要用专门的图标制作工具生成。你看错误提示说icon文件没有包含icon格式数据,你再检查一下,看看路径什么的有没有错误。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2008-05-25 14:37 白龙
大哥,我用了一下是部署一个SWT程序,程序没有问题.但是用exe4j按照步骤出来的老是这个异常是什么意思啊:,该怎么解决啊?

java.lang.UnsupportedClassVersionError: swt/swtapp (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[未登录] 2008-05-25 19:04 y6cn
UnsupportedClassVersion貌似你用的什么东东的版本不支持哦,然后它无法加载,后边的程序用到了但是找不到URL位置,这样在你打包后exe4j引擎执行时不知道从何入手,你还是再检查一下,有没有用外部包,有没有用awt组件什么的,如果用的有外部包的话最好不要忘了把它的dll文件也处理好。java运行环境配置不好也会出错的。
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2008-05-26 10:43 白龙
@y6cn大哥,我就是用的那个ECLIPSE的一个插件做的SWT/JFACE叫做SWT designer.有个CSDN的朋友用exe4j部署的应用程序,我是用eclipse打包的,什么叫做外部包?我把那些我用到的JAR都打包进去了.而且那个朋友说用的regular mode反正我两个都用过,都不行.都是这个错.会不会打包JAR就有问题啊?ECLIPSE的打包出来的程序我自己用批处理写的能运行的.用EXE4J不行.而且没有各程序都是这个错.JDK的运行环境我配置了的,path和classpath都配了.大哥在帮我分析一下看有什么问题.我急救.谢谢了  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2008-05-26 11:50 y6cn
如果说你在eclipse里能正常运行的话,那么用exe4j是不该有问题的,如果有问题,最可能出错的地方是:一、导出jar出错;二、运行环境配置出错。你先看一下我的这篇文章:http://www.blogjava.net/y6cn/archive/2008/05/18/201221.html,查看一下打包后的jar文件里class文件少不少,先把jar做好再说。“jar in exe”模式是在有了jar文件后用的,EXE4J在这种模式下把jar文件包含进了exe文件。
另外你写到:“ECLIPSE的打包出来的程序我自己用批处理写的能运行的.用EXE4J不行.”,从这句话判断可能会是运行环境没配置好。你用exe4j打包时先不要打包jre,把这个设为你机器上安装的jre环境,再试一下看能不能运行,如果能运行说明你的jre打包有问题,不能是你的程序有问题。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2008-06-20 17:35 Jwh
请问博主 我做的exe文件 到无java环境的电脑双击不能运行。
该怎么解决呢??  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2008-06-20 17:42 y6cn
估计你在将jdk打包进exe时出错了,按着我上边的步骤来应该没问题的。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2008-07-14 23:42 何敏··
非常详细··谢谢1·  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2009-02-04 16:30
回复 不行啊
报的错是
java.lang.ClassNotFoundException: D:.yxmtest.WEB-INF.classes.com.xj.yxm.test.SwingTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2009-02-08 10:38 y6cn
@杨
估计还是你的jar文件有问题,程序在执行jar文件时找不到一些类文件,用rar打开你的jar看一下,里边生成的类是不是全的。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2009-03-04 13:36 白羽
为什么我的最后一步,执行快完了 提示Compilation failed.Reason; java.io.IOException;d:\java\xxx.jar“系统找不到指定的路径”
我就是放在这里的啊  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2009-03-04 19:20 y6cn
@白羽
你的jar应该正确生成,不然在合成exe时是不会通过的  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2009-05-06 19:49 javaLover
如何设置相对途径图片的显示啊,logo啊  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2009-05-07 12:40 y6cn
@javaLover
你把它们都放在项目根目录下就行了  回复  更多评论
  

# 生成成功了啊! 2009-07-10 20:00 shk
我用了一下,不错,一次性生成成功了,非常感谢啊!如果能把执行生成的exe文件时第一步的提示去掉就更加好了,也就是只要双击一下就可执行,而不用双击之后再按一下Enter键才可以。  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2009-07-30 14:15 Leo
为什么我按照上面说的 什么也没报错就是点击exe文件 什么东西都不出来啊 是怎么回事啊 想问下 web应用可以这样弄吗 比如说在这 mian Class 这一步时 我web程序根本就没有 mian 方法啊 首页是就jsp页面。 请高人赐教  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2009-07-30 19:28 y6cn
@Leo
还是那句话,先确认你的jar包导出是否正确,如果jar包正确按照上边的步骤应该是没问题的.至于web方面的应用应该是不行的吧,这个软件是打包桌面应用的.  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2010-12-29 21:22 jar成功,exe出错
我的jar可以正常运行,但是使用exe4J生成exe就报错,
java.lang.NoClassDefFoundError: org/apache/mina/core/service/IoHandlerAdapter
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethod(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.mina.core.service.IoHandlerAdapter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
这就怎么回事?  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2011-01-01 15:51 y6cn
@jar成功,exe出错
应该是少jar包了  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2012-08-19 17:36 拿个板砖
@y6cn
老大,我的程序部分用exe4j有jar转化为exe后可以运行但是一些复杂一点的jar形式可以在本机上运行,但是转化完成后却总提示错误:
java.lang.ClassNotFoundException: ??
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2013-04-02 23:40 范明
compilation failed.reason: java.ioexception:icon file does not contain icon data  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2013-04-02 23:43 范明
compilation failed.reason: java.ioexception:icon file does not contain icon data
java.lang.ClassNotFoundException: ?í????1
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2013-09-20 21:59 潘洪飞
请问我在XP系统下打包的exe文件,选择了64位的打包程序,但是打包完成之后在64系统下就不能用报映像文件有效,但不适用于此计算机  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置 2013-12-26 09:49 test-java
@范明 您好!请问下您是怎么解决使用exe4j打包jar生成exe时的这个问题:
compilation failed.reason: java.ioexception:icon file does not contain icon data  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2013-12-30 01:36 y6cn
从错误提示来看你的icon图片文件有问题@test-java
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新][未登录] 2013-12-30 01:40 y6cn
java.lang.ClassNotFoundException 类未找到,检查一下是不是有些依赖包没有添加@拿个板砖  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2013-12-30 09:18 test-java
@y6cn
非常感谢,ICO图片的问题,之前下载的ICO图片是个错误的,后来用PS自己做了一个就可以了 好高心
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2014-01-12 16:18 翼无忧
请问楼主,怎样使生成的exe程序也使用utf-8编码而不是电脑默认的编码格式?  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2014-01-15 01:08 y6cn
@翼无忧
目前还没遇到你说的这种情况,如果出现编码问题我觉得还是在程序里处理比较好  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2014-03-19 17:54 hzc
请教下,运行打包后的exe文件,下拉列表里有些字不能输入(徐、液等字),有碰到这情况么~  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2014-03-20 13:51 cjp
我把JDBC驱动包加到JDK下JRE下ext下了 但是还是无法访问JDBC驱动包  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2014-03-23 17:47 y6cn
没遇到过呢@hzc
  回复  更多评论
  

# re: 使用exe4j打包jar生成exe常用设置[08-5-25更新] 2014-03-23 17:51 y6cn
不需要加到JDK下呀,你把外部引入的包放在一个目录下,在打包时在第5步“Java invocation”里全部添加到Class path里就行了.我对第5步的描述又做修改,你可以再看一下上面的文章@cjp
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: