比如我有这个路径d:/a/
----------------
package a;
class dog{
public dog(){}
}
------------------同时再来一个mkDog,
package a;
class mkDog{
public mkDog(){
new dog();
}
}
------------------------------
为什么可以编译但是运行会出错呢?
Exception in thread "main" java.lang.NoClassDefFoundError
----------------
package a;
class dog{
public dog(){}
}
------------------同时再来一个mkDog,
package a;
class mkDog{
public mkDog(){
new dog();
}
}
------------------------------
为什么可以编译但是运行会出错呢?
Exception in thread "main" java.lang.NoClassDefFoundError
--------------------------------------
package a;
class dog{
public dog(){}
}
----------------------------------------
package a;
class mkDog{
public static void main(String[] arg){
new dog();
}
}
------------------------------------------
我意思就是如果像这样都package在一个包里.编译以后,mkDog这个class不能运行啊.
先执行 set CLASSPATH=d:;%CLASSPATH%
目录这样没错吧?
d:/a/Dog.class
d:/a/mkDog.class这个mkdog.java要放在根目录才能编译.
但是编译的class不能运行
把你完整的编译执行脚本发上来看看。
package a;
public class Dog{
String s;
public Dog(){
s="Dog";
}
public String toString(){
return s;
}
}
------------------------------------------
package a;
public class MkDog{
public static void main(String[] arg){
System.out.println(new Dog());
}
}
-------------------------------------------
这两个,然后我的环境变量设了比如 f:\java\
我新建一个a 文件夹.
dog.java 可以放在f:\java\a 下编译没错.但是 MkDog.java 竟然都不能放在f:\java\a 下编译,而只能在f:\java\ 下编译?
----------------------------------------
把package去掉,换成 import a.*;
也只能在f:\java\ 下编译,可以运行.
但是换在其他目录下就不能运行????也不能编译.
太奇怪了?
还是我对package 和环境变量的理解有错误啊?
竟然是这个问题.
class_path 和 classpath !!
这两个什么区别啊?