日期:2014-05-20  浏览次数:20835 次

关于jar包的使用,求指教
我在一《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包