本文出自One
Coder博客,转载请务必注明出处:http://www.coderli.com/archives/runnablejar-to-exe/
发现很多人问如何把Jar转成exe程序。可能是想双击运行和随处运行。其实这个并不难,我就简单总结几种方法,供大家参考,关键还是要知其所以然。
Java程序的运行不可能脱离JRE,不管你是Jar包还是exe程序。这点你必须了解。那么在没有JRE的机器上你的程序怎么跑?很简单,在你程序里带一份JRE就行了。
先介绍集中打包的方法:
Eclipse:
最简单直接的方法,选择你想打包的程序,右键export...
选择Runnable Jar file。(即可执行的Jar包)
选择你程序的主类,就是还有Main函数的类。点Finish即可。
在你的机器上,设置好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包的小程序进行说明。
这是笔者打出Jar的内部截图,去掉所有跟我的程序不相关的东西。MANIFEST.MF的配置也很简单。
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指定的。
按照里面的步骤,你一定可以成功。
说了这么多,如果还有什么不明白的,可以给我留言,一起讨论研究。
PS1:默认的JRE体积实在太大,你可以考虑精简JRE还节约空间,这部分内容,不在本文讨论。另外,如果你想把你的软件做成安装包的形势,可考虑InstallAnyWhere(http://www.flexerasoftware.com/products/installanywhere.htm)这个工具,会有
PS2:笔者研究的过程中,为了模拟没有JRE的环境,真是百般折腾,因为笔者把所有环境变量都删掉,还有可以运行。不知道是不是从JDK7开始,Java居然在我的System32路径下,也放置Java.exe等程序,也就是说,不用配置Path了。jre路径的指定,貌似也写入了注册表,不过这点,笔者没有亲自证实,只是在注册表中简单的搜索了一下,仅发现了JavaFX的配置和一些其他的Java配置,没有深入研究,不好定论。有兴趣可以研究下,也麻烦告诉我一声。
分享到:
相关推荐
- **Java to EXE转换器**:由于Java程序本身并不能直接生成exe可执行文件,我们需要第三方工具来实现这一转换,如JSmooth、Launch4j、JAR2EXE等。这些工具会创建一个Windows可执行文件,该文件包含Java运行时环境...
"Java 程序或项目打包成 jar 与 exe 文件" Java 程序或项目打包成 jar 与 exe 文件是 Java 开发中一个重要的步骤。在这里,我们将详细介绍如何将 Java 程序或项目打包成 jar 文件,然后将 jar 文件转换成exe 文件,...
在IT行业中,将Java项目打包成可执行的jar或exe文件是常见的需求,特别是对于希望在没有Java环境的用户机器上运行的应用程序。本篇主要介绍如何使用IntelliJ IDEA(Idea)将Springboot或Java项目打包为jar,并通过...
Java程序通常运行在Java虚拟机(JVM)上,但为了让非Java开发人员或没有安装Java环境的用户也能轻松运行程序,我们可以将其打包成可执行的Windows程序(.exe文件)。这里提到的“Java程序打包成exe执行文件工具”是...
所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java程序跑起来(JET之类转Win32编译的方式愚以为不如直接写C++程序,...
总之,打包Java程序至JAR文件并连接MySQL数据库,需要正确管理依赖,选择合适的打包工具,如Eclipse的Export功能,以及在必要时使用exe4j将其转换为可执行文件。同时,处理好数据库连接参数的存储和管理,确保程序的...
Java的jar包打包为exe安装程序是一个常见的需求,特别是在开发跨平台的应用时,为了方便Windows用户,开发者希望提供一个可以直接双击运行的.exe文件。这个过程涉及到Java的可执行文件生成和安装程序的制作。以下将...
然而,为了在没有 Java 运行环境的计算机上运行程序,我们可以进一步将 JAR 打包成 EXE (Executable) 文件,使其具有与 Windows 系统下的原生可执行文件相同的外观和功能。 **1. 打包成 JAR 文件** JAR 文件的创建...
在使用exe4j进行转换时,你需要提供JAR文件的位置,并配置程序入口点,即Java程序的主类。此外,还可以设置JRE的路径,如果希望打包JRE到EXE中,以确保即使目标机器没有安装JRE,程序也能正常运行。exe4j还允许添加...
Java程序通常被打包为.jar文件,它是一个包含类文件、资源和元数据的容器。要运行.jar文件,用户需要安装Java Runtime Environment (JRE)。相比之下,.exe文件是为Windows操作系统编译的二进制可执行程序,无需额外...
Java打包机是一款便捷的工具,专门用于将Java的.jar文件转换为可执行的.exe文件,使得非Java环境的用户也能方便地运行Java程序。这款工具相比exe4j来说,操作更为简便,对于开发者来说,是一个快速发布Java应用程序...
标题中的“Jar转EXE”是指将Java的.jar文件转换为可执行的.exe文件,这样用户无需安装Java环境即可运行程序。这个过程涉及到Java应用程序的跨平台性与可执行文件的兼容性问题。下面我们将详细探讨这个过程以及两种...
标题提到的"java 桌面程序打包jar可执行包,类似达成exe可执行程序",指的是通过特定工具或方法,让Java程序像Windows平台上的.exe文件一样,双击即可运行。 Eclipse是一款广泛使用的Java集成开发环境(IDE),它...
Launch4j 是一款用于将 Java 应用程序(JAR 文件)封装为 Windows 本地可执行文件 (.exe) 的工具。它提供了丰富的功能,如本地弹出屏幕、应用程序图标定制、JRE 搜索或绑定、启动失败反馈机制、命令行参数传递以及...
为了使Java程序能够在没有安装JDK或JRE的环境下运行,我们可以将jar文件进一步打包成exe文件。这一步通常需要借助于专门的工具。 ##### 2.1 使用j2exe4j - **安装j2exe4j**:j2exe4j是一款强大的Java应用程序打包...
Java程序通常以`.jar`(Java Archive)文件的形式发布,这是一种可执行的归档文件,包含类文件、资源和其他组件。然而,对于不熟悉Java环境的用户来说,直接运行`.jar`文件可能需要安装Java Runtime Environment ...
Java 打包成 jar 文件和将 jar 文件导出为 exe 文件的方法汇总 本文档将详细介绍 Java 打包成 jar 文件和将 jar 文件导出为 exe 文件的方法汇总。Java 是一种流行的编程语言,广泛应用于软件开发、Android 应用开发...
Java2EXE是一种工具,它允许开发者将Java的.jar(Java可执行)文件转换为.exe(Windows可执行)文件。这种转换过程对于那些希望在不安装Java运行环境的计算机上运行Java应用程序的用户来说非常有用。Java2EXE工具...
exe4j能够将Java应用程序打包成原生的Windows可执行文件,同时可以将Java Runtime Environment (JRE) 集成到EXE中,这样用户无需单独安装JRE就可以运行程序,大大提高了部署的便利性。 使用exe4j的步骤如下: 1. ...