为什么这个静态嵌套类不能在一台计算机上用Java工作?

为什么这个静态嵌套类不能在一台计算机上用Java工作?,java,class,static,nested,Java,Class,Static,Nested,这让我在过去的一个小时里都快发疯了。我有两台计算机,其中一台主要运行linux mint 11和以下版本的JDK: java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~9.10.1) OpenJDK Client VM (build 19.0-b09, mixed mode, sharing) 现在,在我的windows计算机上,我尝试使用我在linux上编译和运行的

这让我在过去的一个小时里都快发疯了。我有两台计算机,其中一台主要运行linux mint 11和以下版本的JDK:

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~9.10.1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)
现在,在我的windows计算机上,我尝试使用我在linux上编译和运行的相同代码。windows one使用以下java运行XP:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
我知道版本是不同的,但这真的应该对像嵌套类这样简单的东西产生影响吗?我真的希望我只是在以下代码中犯了一个错误:

public class test {
    public static class nClass
    {
        public void testFunc()
        {
            System.out.println("Test worked.");
        }
    }
    public static void main(String args[]) {
        test.nClass t = new test.nClass();
        t.testFunc();
    }
}
此代码在linux计算机上编译并运行良好。当我把它带到windows one上时,它会很好地编译,但会产生:

NoClassDefFoundError test$nClass at test.main(test.java:10)

我完全被难住了,完全受挫了

我猜您只复制了
test.class
文件-您还需要复制
test$nClass.class
。。。或者在Windows上重新编译


(请注意,这些名称不遵循Java命名约定。这与问题无关,但即使对于示例代码也遵循约定是个好主意。)

我猜您只复制了
test.class
文件-您还需要复制
test$nClass.class
。。。或者在Windows上重新编译


(请注意,这些名称不遵循Java命名约定。这与问题无关,但即使对于示例代码,遵循约定也是个好主意。)

先生,您是个天才。真不敢相信这么容易,先生,你真是个天才。我真不敢相信会那么容易。