一.生成及运行jar包
1.编写java文件,命名为HelloWorld.java
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld!");
}
}
2.在文件所在路径下编译,javac HelloWorld.java,生成文件HelloWorld.class;
3.在class文件所在路径下,执行命令 java -cvf HelloWorld.jar HelloWorld.class 生成jar包 HelloWorld.jar;
4.打开jar包,修改其中MANIFEST.MF,修改前文件内容为:
Manifest-Version: 1.0
此时在jar包所在路径执行命令: java -jar HelloWorld.jar会报错“HelloWorld.jar中没有主清单属性”
需要在MANIFETST.MF文件增加一个main方法所在类的类名(记得带上包名,由于此例子没有包名,所有没有加)
Manifest-Version: 1.0
Main-Class: HelloWorld
注意在冒号之后有个空格;
此时在jar包所在路径执行命令:java -jar HelloWorld.jar,执行成功
二.通过classpath引用其他jar包.(以下操作都是在E:/test路径下完成中)
1.创建计算类MyMath,内容如下
package com.calc;
public class MyMath{
public int add(int a,int b){
return a+b;
}
}
由于此类在包中,因此MyMath.java文件一定要放在路径"com/calc/"文件夹下,使用javac进行编译.然后进入test文件夹执行打包命令,生成jar包,此时jar包在test文件夹下生成
jar -cvf MyMath.jar *
此时将当前目录下的所有内容打包,其中包含源文件MyMath.java,需要删除;
2.我们创建一个类Test,其中需要引用该方法,代码如下
package org;
import com.calc.MyMath;
public class Test{
public static void main(String[] args){
MyMath mm=new MyMath();
System.out.println(mm.add(2,3));
}
}
进入org文件夹,编译此程序 javac -classpath E:/test/MyMath.jar Test.java
3.进入test文件夹,将此程序打包,然后修改MANIFEST.MF文件,其中需要增加启动类,由于引用了其他jar包,因此需要增加classpath.路径为相对当前Test.jar包的位置,由于引用的jar包在项目目录下,因此直接为MyMath.jar,如果在项目目录下新建lib目录,将引用的jar包放入,则路径变为lib/MyMath.jar
Manifest-Version: 1.0
Created-By: 1.8.0_92 (Oracle Corporation)
Class-Path: MyMath.jar
Main-Class: org.Test
注意冒号后面都有一个空格
4.执行jar包
java -jar Test.jar 输出为5