package org.jcs.a ;
public class JarDemo{
public String getInfo(){
return "jar包中的方法" ;
}
} ;
将上面代码打包编译成名为 myjar.jar 包
package org.jcs ;
import org.jcs.a.* ;
public class MainJarDemo{
public static void main(String args[]){
JarDemo jar = new JarDemo() ;
System.out.println(jar.getInfo()) ;
}
} ;
这个打包成一个包。
我的电脑几经配置好classpath路径: .;%java_home%\lib;%java_home%\lib\tools.jar;%java_home%\lib\dt.jar;%java_home%\jre\lib\rt.jar;
我要问的问题是为什么在控制台运行这个程序的时候还要再设置一次classpath路径指定jar包: E:\demo>set classpath=.;e:\demo\myjar.jar 才能运行这个程序。
E:\demo>java org.jcs.MainJarDemo
Exception in thread "main" java.lang.NoClassDefFoundError: org/jcs/a/JarDemo
at org.jcs.MainJarDemo.main(MainJarDemo.java:5)
Caused by: java.lang.ClassNotFoundException: org.jcs.a.JarDemo
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
|
|