java - 为什么这个静态嵌套类不能在一台计算机上的 Java 中运行?

标签 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 计算机上编译和运行的相同代码。 Windows 运行 XP 并使用以下 java:

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 上时,它会编译得很好,但会产生:

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

我完全被难住了,完全沮丧。

最佳答案

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

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

关于java - 为什么这个静态嵌套类不能在一台计算机上的 Java 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7855101/

相关文章:

java - 可碰撞颜色 Java/Android 游戏

xslt - 具有 XPath 的唯一 ID 和多个类

尝试在 java static 中打印矩阵值时出现 java.lang.NullPointerException

java - 错误 : non-static variable this cannot be referenced from a static context

class - Scala - 动态类加载 - A 类不能转换为 A 类

java - 对于生成的 pdf 文件,静态图像不会与 Flying Saucer 和 thymeleaf 一起显示

java - 如何使项目兼容 64 位

java - 无法在 AIX 的 1.7 java 中找到 KeyTool 类

java - Spring框架: expected single matching bean but found 2

python - 我们可以通过在 python 中的原始名称周围添加双下划线,将所有内置函数转换为类中的魔术(特殊)方法吗?