Это сводило меня с ума в течение последнего часа. У меня есть два компьютера, один из которых я работаю в основном под управлением 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)
Я полностью в замешательстве и полностью разочарован.