解决如下问题:
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%)
注意命令的书写顺序!!