Jsmooth Java文件打包成exe文件(可以在没安装JDK的环境下运行)

来源:互联网 发布:java中return返回值 编辑:程序博客网 时间:2024/05/16 23:41

     用Java Swing做了一个小小的界面项目,想要把它打包成exe可执行文件,上网络搜索到了可以使用Jsmooth打包,挺方便的。现在,将网络上的资料总结下,并说说自己遇到的问题。

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

1、将 java 程序导出 jar 包,打包的方式有两种,一种是将当前项目文件以及相关引用全部打入同一个 jar 包,另外一种是将当前项目文件打成单独 jar 包。两种方法都可以。但是建议使用第二种,这种方式维护和升级都比较方便,只更新 jar 包即可,当然第一种也有好处,第一种在生成 exe 选项的时候,可以将所有的 jar 文件打包到 .exe中去,可以使程序看起来简单。


2、新建一个目录(如: D:\test\program ),将所用到的所有转化文件放入到该目录中去。包括 .exe 的图标、 jre  jar 文件等。(注意此例子生成的 .exe 可以在无 jre的环境下运行, jre 已经被当成程序的一部分了,把所有文件放入同一个文件夹可以指定相对目录)目录结构如下:


3、启动 JSmooth, 点击左侧的导航 “骨架”,在打开的页面中选择“ Console Wrapper  , this is for console application


4、选择左侧导航“可执行文件”,在打开的页面中点击“可执行的二进制文件”的右侧浏览按钮,将路径选择到刚才建立的目录下( D:\test\program ),此目录即是生成 .exe 程序的基本目录,自己起一个 .exe 的名称,如 sign.exe.


5、选择可执行文件的图标,选择同一个目录中的图标

6、选中“设置执行文件所在的目录为应用程序的当前目录”,此选项可以将当前的.exe 所在的目录设置为应用程序的根目录,其他文件的目录为相对该目录的相对目录,这样就可以做到不管程序被拷贝到哪里,都可以运行,而不是一个绝对目录


7、 点击保存按钮 ,为什么要在此时保存呢?这个可能是 JSmooth 的一个小问题,上一步骤中选中的相对目录,貌似是工程文件( JSmoonth 工程)所在的目录。把工程文件保存在该目录下,即可完成对所有选中文件相对路径设置。点击保存按钮,将文件保存在相对目录中去,名字可以任意取。例子中将该工程文件保存在D:\test\program\abc.jsmooth, 再强调一下工程文件一定要保存在根目录里,相对路径的问题才能解决 。保存完毕后,看下图(注意要切换下页面才能看到这个信息,如点一下 " 骨架 " ,再点 " 可执行文件 " ,路径已经变成相对路径了,原来的 D:\test\program\sign.exe  已经变成  sign.exe ):


8、点击左侧导航 “应用程序”,在打开的页面中,选配置 Classpath 路径,即你的 java 项目文件的 jar 包以及所有引用的 jar 包(不包括 jre  jre 后面会单独处理)。 其中使用嵌入的 jar 文件选项可以将选中的一个 jar 文件直接打包到  .exe 中去,这种对于只使用一个 jar 包的程序或者把所有的引用以及程序打包成一个 jar 文件的做法,比较好,这样 classpath 就不用设这了 。当然你也可以即设置嵌入式  jar ,又设置 Classpath 类路径。注意 Classpath 的先后顺序,一般将自己项目中的文件所在的 jar 包移动到最上面,这样一些资源文件就会以自己项目中的资源文件为准,如log4j.xml  ,  zh_cn.property 文件等。选择住类,即 main 函数所在的那个类,并填写好启动参数,即 main 函数所需要的参数,没有可以不填。

9、点击左侧导航菜单“ jvm 选择”, 可以为应用程序指定一个相对目录下的 jre 。这样应用程序不管拷贝到哪里,都可以直接运行 ( 注意选号路径后,路径信息直接就是相对路径,如果出现了绝对路径,则是上面某些步骤出现了问题)

10、JVM 配置可以设置 JVM 的内存,启动参数等信息。

11、点击保存 - 编译。


12、在文件目录下就会生成一个 .exe 文件。


13、其中没有用的文件是 jsmooth 的工程文件 ,abc.jsmooth, 图片文件(因为图片已经被打包到 .exe 中去了)。删除这 2 个文件,之后整个程序就已经做好了,无论将该程序拷到任意目录或者拷贝到没有 jre 的计算机上都能正常运行。其实如果程序中没有绑定 jre ,程序在运行时也会去找系统的 jre 的。

0 0
原创粉丝点击