关于java导出jar包无需配置java环境运行方式

项目右键export..选择Runnable Jar file。(即可执行的Jar包)

Launch configuration:选择程序运行的主类

Export destination:选择导出的jar包位置

 

在你的机器上,设置好Jar文件的打开方式(别默认用解压缩的工具打开就行),双击即可运行。

这个跟在命令行执行:

 

java -jar forfun.jar的效果是一样的。

 

其实一个Jar能运行,关键还是配置Jar内部的MANIFEST.MF文件。该文件存在于Jar包根目录的META-INF文件夹内。主要由于指定主类(Main)的位置:

 

Manifest-Version: 1.0

Main-Class: one.coder.jdk.JDKMain

 

版本可以自己指定,默认生成是1.0。主类位置需要指定。注意,Main-Class的冒号后,要跟一个空格。

如果你还有要依赖的Jar包,则可以配置Class-Path来指定。

 

Class-Path: ./ logback-core-0.9.29.jar junit-4.9.jar slf4j-api-1.

 6.1.jar logback-classic-0.9.29.jar hamcrest-core-1.1.jar

 

打开刚才生成的Jar文件,你可能发现多了一些Eclipse的东西,并且主类变成了

 

Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

 

也就是通过Eclipse提供的这个主类来加载的你程序。如果你不喜欢这样,将其去掉。自己进行配置。笔者通过一个不依赖任何Jar包的小程序进行说明。

 

Manifest-Version: 1.0

Main-Class: one.coder.jdk.JDKMain

 

在有JRE的机器上,双击一样可以运行。

 

注:这里需要提一下,尽量不用用解压软件自带的编辑器进行编辑,如果你编辑后发现不能运行,提示打开jar错误等信息,很可能是由于你编辑的MANIFEST.MF文件的编码错误。导致无法解析。默认是采用ANSI编码格式的。不要改成UTF-8等。笔者被这个问题,困扰了近半个小时。

 

接下来说说在没有JRE的机器上怎么办?

 

最简单的手动的办法就是写一个bat脚本。并且带一份jre在你的程序里。

 

把图中的三个文件,放入同一个文件夹中。

start.bat内容如下:

 

.\jre7\bin\java -jar .\run.jar

 

说白了就似乎调用jre中的java命令,执行指定的jar程序。 双击start.bat,执行成功。

 

如果你非要打成exe程序,笔者推荐一个工具JSmooth。简单好用。同样这也肯定是需要JRE指定的。

关于JSmooth的教程,笔者找到了一个不错的教学贴:http://yisufuyou.iteye.com/blog/403556

 

按照里面的步骤,你一定可以成功。

PS1:默认的JRE体积实在太大,你可以考虑精简JRE还节约空间,这部分内容,不在本文讨论。另外,如果你想把你的软件做成安装包的形势,可考虑InstallAnyWhere(http://www.flexerasoftware.com/products/installanywhere.htm)这个工具,会有

 

PS2:笔者研究的过程中,为了模拟没有JRE的环境,真是百般折腾,因为笔者把所有环境变量都删掉,还有可以运行。不知道是不是从JDK7开始,Java居然在我的System32路径下,也放置Java.exe等程序,也就是说,不用配置Path了。jre路径的指定,貌似也写入了注册表,不过这点,笔者没有亲自证实,只是在注册表中简单的搜索了一下,仅发现了JavaFX的配置和一些其他的Java配置,没有深入研究,不好定论。有兴趣可以研究下,也麻烦告诉我一声。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值