如何手动打包jar文件

确保文件在一个包下


实例, 在同一个包src下有下面两个类 Test1 和 Test2

  • Test1
//Test1.java: A simple code to test jar operation.
public class Test1{
    private int i;

    public Test1(int i){
        this.i = i;
    }

    public void f(){
        System.out.printf("Test_jar: i is %d !\n",this.i);
    }

    public static void main(String[] args) {
        Test1 myTest = new Test1(1);
        Test2 myTest2 = new Test2(2);
        myTest.f();
        myTest2.f();
    }
}
  • Test2
//Test2.java: A simple code to test jar operation.
public class Test2{
    private int i;

    public Test2(int i){
        this.i = i;
    }

    public void f(){
        System.out.printf("Test2: i is %d !\n",this.i);
    }
}

为了保持代码的整洁,直接使用 javac *.java -d bin, -d 参数指定生成的 class文件的位置

.jar文件生成

准备一个 mainfest.txt 文件,需要以下内容:

Main-Class: Test1

  • Test1 即包含 main 方法的那个类
  • Test1 和冒号之前一定要有空格, Test1 后面一定要有换行
  • mainfest.txt 最好和 Test1 这个 class 文件在同一目录下

否则!接下来运行 .jar 文件的时候很容易出现这样的报错: Can't execute jar- file: "no main manifest attribute"

然后执行命令行:
jar -cvmf mainfest.txt Test.jar *.class

切记 m f 指令顺序需和后面清单文件名和归档文件名的顺序保持一致

对于参数不清晰的可以使用jar --help查看帮助文档

Operation & Modifiers Meaning
-c Create the archive
-v Generate verbose output on standard output
-m Include the mainfest information from the given mainfest file
-f The archive file name. When omitted, either stdin or stdout is used based on the operation
  • jar -tf xxx.jar 可以查看 jar 文件内容
  • jar -xf xxx.jar 可以解压 jar 文件

最后运行.jar文件: java -jar Test.jar

参考资料


诗与远方-如何把java文件打包为jar文件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容