在命令行环境Java程序调用导入的jar包中的类

时间:2021-10-11 17:43:42
当把一个程序编译得到的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!

注:

  1. 编译和执行Test过程中必须指明jar包路径,而不用设置环境变量classpath。如果仅设置classpath是行不通的;
  2. jar包不是一层路径,故在Test的调用中直接import进util就可以了。