美文网首页
如何手动打包jar文件

如何手动打包jar文件

作者: 刘月林Yuelin_MELB | 来源:发表于2022-12-10 07:30 被阅读0次

确保文件在一个包下


实例, 在同一个包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文件

相关文章

网友评论

      本文标题:如何手动打包jar文件

      本文链接:https://www.haomeiwen.com/subject/fbbtqdtx.html