Linux下手工创建jar 包文件和执行jar 包文件

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Linux下手工创建jar 包文件和执行jar 包文件.

解决如下问题:
1. 如何创建jar包.
2. 如何创建可执行jar包
3. 如何执行jar包

------------------------------
1. 创建jar包
------------------------------
需要用 jar 工具, jar包就是java 的归档包,同zip,rar 类似.

例如: 创建my.jar包,包含当前目录下所有的class 文件.
        jar -cvf my.jar *.class
      解开 my.jar 包
          jar -xf my.jar

------------------------------
2. 执行jar 包
------------------------------
执行jar包用 java 命令, 例如
    java -jar my.jar

但如果my.jar 包含的文件不符合要求并不能运行会给出错误.

例如:
2.1 源码文件hello.java 如下

$ cat hello.java
public class hello {
    public static void main(String args[]){
        System.out.println("ha,ha!,I say hello");
    }
}

2.2 编译
$ javac hello.java 生成hello.class

2.3  直接执行
$ java hello
ha,ha!, I say hello

------------------------------
3. 现在打包成可执行的jar包.
------------------------------
3.1: 如果简单的只是包含hello.class
$ jar -cvf my.jar hello.class
已添加清单
正在添加: hello.class(输入 = 423) (输出 = 292)(压缩了 30%)

运行出错:
$ java -jar my.jar
my.jar中没有主清单属性
原因是它找不到main 方法在哪个类种可以想像一下这个jar 包包含的很多类.(尽管我这个例子只包含了一个类

3.2: 正确的打包方式, 添加MANIFEST.MF 文件
并在MANIFEST.MF 文件中写下主类(Main-Class), 如下示:
$ cat MANIFEST.MF
Main-Class:  hello

重新打包并包含MANIFELT.MF
$ jar -cvmf MANIFEST.MF my.jar hello.class
已添加清单
正在添加: hello.class(输入 = 423) (输出 = 292)(压缩了 30%)
注意命令的书写顺序!!

4. 运行通过!
$ java -jar my.jar
ha,ha!, I say hello

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux