以下程序,在Netbeans6.1下编译运行完全没有问题;而命令行下用Javac编译通过,运行则抛出异常,JDK平台均为1.6public class Test {
public static void main(String arg[]){
class Foo{
public int i = 3;
}
Object o = (Object)new Foo();
Foo foo = (Foo)o;
System.out.println(" i = " + foo.i);
}
}
public static void main(String arg[]){
class Foo{
public int i = 3;
}
Object o = (Object)new Foo();
Foo foo = (Foo)o;
System.out.println(" i = " + foo.i);
}
}
Exception in thread "main" java.lang.ClassCastException: Test$1Foo cannot be cast to Object
at Test.main(Test.java:6)说明:
1、编译平台jdk1.6.07
2、cmd下通过javac编译本程序得到的Test.class共724字节,通过java执行抛出上述异常
3、NetBeans下编译得到的Test.class共875字节,能通过java命令解释
NetBeans下编译下包含调试信息,去除调试信息该只有622字节
你把你jdk里面有个src.zip压缩文件解压一下试试,可能是这个问题
或用参数指明java -cp c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jar TestIDE都自动设置classpath,因此正常。