我在一《Java开发实战经典》中看到的关于jar的使用。就是先用jar命令打包,然后在使用的问题,我的做法如下:
写了一个hello.java文件:
- Java code
package mypackage;public class Hello{public String getInfo(){return "Hello World!!";}};
然后编译命令是:
javac -d . hello.java
然后压缩打包:
jar -cvf mypackage.jar mypackage
再把生成的包删掉,只保留jar文件
然后写了个Main.java 文件
- Java code
import mypackage.Hello;public class Main{public static void main(String args[]){ Hello hello = new Hello(); System.out.println(hello.getInfo());}};
然后编译运行Main文件但是总出错:
Exception in thread "main" java.lang.NoClassDefFoundError: mypackage/Hello
at Main.main(Main.java:4)
Caused by: java.lang.ClassNotFoundException: mypackage.Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 1 more
------解决方案--------------------------------------------------------
在项目中建立lib目录,把这个jar文件拷到lib目录里面,有必要时需要鼠标右键你的项目 -> Properties -> Java Build Path -> Libraries,在这里添加jar文件所在路径
------解决方案--------------------------------------------------------
-cp 指定classpath目录或者jar包