Java的Package与Import机制之我的理解(初学者的心得)
以下内容的测试条件是你的机器上,设置了path命令PATH= D:JDK1.4BIN;D:JDK1.4LIB;,可以正常执行java和javac命令,不用设置classpath路径的情况下。从一个简单的例子谈谈package与import机制
基本原则:为什么需要将Java文件和类文件切实安置到其所归属之Package所对应的相对路径下。
为什么要这样做呢?如果你在程序中,用到打包命令package,并且直接编译和执行该程序。例如:以下面程序为例:
package a.b.c;
public class hello
{
public static void main(String args[])
{
System.out.println("Hello the world!");
}
}
此程序可以编译通过,但是执行时,却提示以下错误!
D:myxdj>javac hello.java
D:myxdj>java hello
Exception in thread "main" java.lang.NoClassDefFoundError: hello (wrong name: a/
b/c/hello)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
补充:Jsp教程,Java技巧及代码