我在一《Java开发实战经典》中看到的关于jar的使用。就是先用jar命令打包,然后在使用的问题,我的做法如下:
写了一个hello.java文件:
package mypackage;
public class Hello{
public String getInfo(){
return "Hello World!!";
}
};
然后编译命令是:
javac -d . hello.java
然后压缩打包:
jar -cvf mypackage.jar mypackage
再把生成的包删掉,只保留jar文件
然后写了个Main.java 文件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