当前位置: 首页
整理发布可执行jar包的方法(打包jre,用户可不配置java环境)2018-01-09 09:19:30.0整理发布可执行jar包的方法(打包jre,用户可不配置java环境) 1.先正常编译java文件 Javac *.java 2.jar打包class文件(先写好MANIFEST.MF文件,引导主函数信息) (1)MANIFEST.MF写法: Manifest-Version: 1.0 Created-By: 1.8.0_25 (Oracle Corporation) Main-Class: mymail.Jexample
(2)jar打包命令: jar cvfm mymail.jar mymail/MANIFEST.MF mymail 具体参数用法可参考网上资料,cvfm后mymail.jar是要打包成的文件名,mymail/MANIFEST.MF是刚才写好的信息文件路径,最后mymail是需要打包的那个文件夹。 3.再打包jre,写bat文件(为了脱离java环境运行): 把整个jre文件夹与刚才的jar包文件放在一个文件夹下,(文件夹名称可以任意取),并在此文件夹下写一个bat文件(记事本编写即可) bat文件: start jreinjavaw -jar mymail.jar (最后那个mymail.jar就是自己写好的jar包) 4.发布: 可以将整个文件夹压缩一下发给别的用户,即使不安装配置java环境也可双击bat文件来执行jar包。
附文: 可执行jar包的MANIFEST.MF 打包可执行jar包时,MANIFEST.MF总是个让人头疼的东西,经常出现这种那种问题。 一个例子: =============================================================================== Manifest-Version: 1.0 Main-Class: test.Main Class-Path: ./ ./lib/commons-collections-3.2.jar ./lib/commons-dbcp-1.2.2.jar ./lib/commons-lang-2.3.jar ./lib/commons-logging-1.1.jar
=============================================================================== 各部分解释: Manifest-Version MF文件版本号 Main-Class 包含main方法的类 Class-Path 执行这个jar包时的ClassPath
以下是需要注意的各个要点: 1. Manifest-Version、Main-Class和Class-Path后面跟着一个英文的冒号,冒号后面必须跟着一个空格,然后才是版本号、类和ClassPath。 2. Class-Path中的各项应使用空格分隔,不是逗号或分号。 3. Class-Path中如果有很多项,写成一行打包的时候会报错line too long,这时需要把Class-Path分多行写。注意:从第二行开始,必须以两个空格开头,三个以上我没试过,不过不用空格开头和一个空格开头都是不行的,我已经试过了。 4. Class-Path写完之后最后一定要有一个空行。 5. jar包内有些配置文件想放在jar包外面,比如文件config.properties:如果这个文件是以路径方式载入的,比如new file("./config/config.properties"),那么将config.properties放在jar包相同目录下的config目录下即可,也就是说“./”路径等价于jar包所在目录;如果这个文件是以ClassPath下的文件这种方式载入的,比如在Spring中载入classpath:config.properties,则在MF文件的配置文件的ClassPath中添加“./”,然后将这个配置文件与jar包放在同一个目录即可,当然也可以在MF文件的配置文件的ClassPath中添加“./config/”,然后把配置文件都放在jar包相同目录下的config目录下。 |