java命令行打包jar

一、制作只含有字节码文件的jar包

1、只含一个.class

 

1)准备源文件 Hello.java

public class Hello {

    public static void main(String[] args) {

        System.out.println("hello");

    }

}

2)javac编译,生成字节码

javac Hello.java

3)添加META-INF/MENIFEST.MF文件

Manifest-Version: 1.0

Main-Class: Hello

注意:后的空格

4)打包

 jar -cvfm hello.jar META-INF\MENIFEST.MF Hello.class  

5)运行jar文件

java -jar hello.jar

 

2、含有多个.class文件

1)准备源文件

Hello.java

public class Hello {
    public static void main(String[] args) {
        Say.speak();
    }
}

Say.java

public class Say {
    public static void speak() {
        System.out.println("hello");
    }
}

2)javac编译,生成字节码

javac Hello.java

3)添加META-INF/MENIFEST.MF文件

Manifest-Version: 1.0

Main-Class: Hello

4)打包

 jar -cvfm hello.jar META-INF\MENIFEST.MF Hello.class  Say.class

5)运行jar文件

java -jar hello.jar

 

3、多个类

如果多个类的话,javac Hello.java -d target 到target目录,打包时jar -cvfm hello.jar META-INF\MENIFEST.MF target 

 

二、制作含有jar文件的jar包

1、调用jar外的jar输出hello

1)准备源文件

Say.java

public class Say {
    public static void speak() {
        System.out.println("hello");
    }
}

Hello.java

public class Hello {
    public static void main(String[] args) {
        Say.speak();
    }
}

2)编译

javac Say.class

3)打包say.jar

jar -cvf say.jar Say.class

4)编译Hello.java

javac -cp say.jar Hello.java

此种方式编译出来的Hello.class java无法执行

5)添加META-INF/MENIFEST.MF文件

Manifest-Version: 1.0

Main-Class: Hello

Class-Path: say.jar

6)打包hello.jar

jar -cvfm hello.jar META-INF/MENIFEST.MF Hello.class

7)运行hello.jar包

java -jar hello.jar

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值