当把一个程序编译得到的class文件打成jar包,我们要如何在别的程序中调用这个jar包中的类呢?
例如下面这个类:
package util; public class MyClass{ public static void myPrint(){ System.out.println("myclass"); } }
首先来到D:\文件路径下,使用命令行编译生成class文件:
javac -d D:\ MyClass.java
然后将class文件打包:
jar cvf myclass.jar util\MyClass.class
现在有另一个程序:
import util.MyClass; public class Test{ public static void main(String[] args){ MyClass.myPrint(); } }
其中调用了MyClass类,那么编译Test类就要注意添加导入jar文件的路径:
javac -cp D:\myclass.jar Test.java
接着执行:
java -classpath D:\myclass.jar;. Test
输出myclass,bingo!
注:
编译和执行Test过程中必须指明jar包路径,而不用设置环境变量classpath。如果仅设置classpath是行不通的;
jar包不是一层路径,故在Test的调用中直接import进util就可以了。