一、将Java程序导成jar包
-
点击File—>Project Structure,点击Artifacts,Add一个JAR
-
进入下图页面后,选择程序的Main Class
-
为了要把程序所依赖的jar包全部包含进去,选择“copy to the output……”,注意下面要选择MANIFEST文件的存储位置,要新建一个文件夹一下,我直接在src下面新建了一个resource文件夹,点击OK
-
对“output root”点击右键,选择创建目录
-
我创建了一个名为“libs”的目录,将程序依赖的lib全部移到libs文件夹中
-
点击创建的jar,下面会出现Class Path的配置页面,点击编辑按钮,在依赖的jar包前面配置一下文件夹名(在指定的jar文件之前增加“libs/”即刚才存放第三方Jar文件的新建目录的名称),之后点击OK、Apply
-
回到Idea主页面,点击上面工具栏的“Build”,选择Build Artifacts,之后点击Build
-
等待片刻,jar包就build好了,可以看到out目录下build成功的jar包
二、将jar包转为exe文件
- 首先需要exe4J软件
链接:https://pan.baidu.com/s/1kRu9Gst7wcLPYtQ4Jy0YwQ
提取码:r1ai
自行下载,安装过程省略,一直下一步就行
- 打开exe4j软件,点击next,选择“JAR in EXE”mode,点击next
- 填写程序名和exe文件的存放位置
- 填写生成的exe文件的名称,注意不要直接next,点击左边工具栏的位数选择
- 如果系统是32位的,可以跳过这一步,如果是64位,勾选上这个选项,然后一直next
- 直到Configure Java invocation这一步,点击右边的加号
- 然后把程序所依赖的jar包和程序jar包全部添加进来
- 选择程序的入口Main class,结果如下,点击next
- 进入Configure JRE,设置一下JRE版本,点击左边的Search sequence
- 首先把默认的JRE的三个配置全部删掉(因为我们要运行在没有JVM的环境中,所以无论是根据注册表找还是根据JAVA_HOME来找,都找不到)
- 将jre文件夹拷贝到我们项目目录下,配置jre的相对路径,点击OK,next
- 一直默认next就好
- 之后exe就生成成功,结构如下,点击Ole.exe即可运行
- 注意要把整个项目拷贝到其它机器,包括jre文件夹
注意:
1. exe4j是不可以将jre直接打包进exe中去的。但exe4j提供了一个搜索jre路径,这个路径可以是系统的环境变量,也可以是注册表,也可以是具体的某路径。
由于要实现在没有jvm的电脑上运行,搜索环境变量与注册表自然是无用功的了,所以只能搜某路径的。把jre的路径,加进去,就行了。但要注意一点:不然用绝对路径哦。我之前就是用绝对路径,导致无效的,而走了弯路的。比如可以用:./jre
2. 打成安装包时,要将生成的exe文件与jre一起打包。为了确认打完包,可以用,在没打包之前,点该exe文件,要确认能运行,不然打包要白忙了。
参考链接:关于将java程序导成.exe
参考链接:idea打包java程序(包含依赖的所有jar包)
参考链接:JavaFx项目打包成exe,并集成Jre