一、通过 eclipse 自带打包
测试项目:
Main.java
package com.bug;
import org.junit.Test;
public class Main {
public static void main(String[] args) {
test();
}
@Test
public static void test() {
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
}
}
1.右键项目文件夹,点击export,选择JAR flie点击next。
2.勾选要打包的文件夹,这里只要勾选需要编译的java文件就可以了,下面的JAR file为打包后的保存路径和jar名称,选择好后点击next。
Export generated class files and resources 表示只导出生成的.class文件和其他资源文件
Export all output folders for checked projects 表示导出选中项目的所有文件夹
Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,不想泄漏源代码,那么就不要选这项了
Export refactorings for checked projects 把一些重构的信息文件也包含进去
3.如下图,点击next。
4.如下图,Main class为项目入口路径,点击后面的按钮可以选择项目入口路径,选择好后点击finish即可完成打包。
Generate the manifest file:是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。
Use existing mainfest from workspace:这是可以选择我们自定义的.MF文件,格式如上所写,引用了第三方包时选用。
Seal content:要封装整个jar或者指定的包packet。
Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。
在打包好后有几个问题需要注意:
1.MANIFEST.MF文件需要根据自己的项目需要进行编写替换,MANIFEST.MF文件的修改需要严格遵守书写规范,
首行为 Manifest-Version: 1.0
第二行为Class-Path: xxx.jar(依赖的jar,没有就不写)
第三行为Main-Class: 项目入口路径
每个冒号后面需要有一个空格
每行结束不能有空格
Main-Class: 项目入口路径 后面需要打两个换行
如果依赖多个jar,则书写完每个jar后空一格写下一个
每行不能超过72个字符,如果每行写一个jar,则每行开始空两格。