java.lang.NoClassDefFoundError на Mac 10.5 - PullRequest
1 голос
/ 08 апреля 2011

Моя проблема началась на днях, когда я попытался запустить файл jar, скомпилированный в java 1.6 от друга.Затем я получил:

java.lang.NoClassDefFoundError

Поскольку я, очевидно, использовал только Java 1.5.Поэтому я обновился с помощью обновления системы.Это не помогло, и когда я запустил:

java -version

в терминале, он все еще сказал, что у меня есть Java 1.5.Затем я увидел в интернете, что на странице загрузки яблок есть «обновление 4 для Java».Я скачал и установил этот файл, но он все равно не будет работать.Я сдался и решил вернуться к своему программированию в Eclipse.Когда я попытался скомпилировать и запустить свое приложение в Eclipse, я теперь получил ту же ошибку java.lang.NoClassDefFoundError, и она не позволила мне продолжить.Я попытался щелкнуть правой кнопкой мыши по проекту и просмотреть свойства, но это не позволило мне, просто дал мне еще одну ошибку.Я подумал, что могу что-то испортить, когда я установил новую версию Java, поэтому я попытался переустановить Eclipse, но он все равно дал мне ту же ошибку.Я пытался создать новое рабочее пространство, но это тоже не помогло.Затем я решил, что попробую скомпилировать через терминал, используя:

javac main.java
java main

Но я все еще получаю ту же ошибку.Я вошел в настройки системы и набрал «java 1.6» и попытался создать новые проекты с javaSE-5 и javaSE-6, но это просто не сработало.Теперь я думаю о том, связано ли это с тем, что eclipse не может получить доступ к каталогам bin & src в каталоге проекта, но это должно сработать, если я переустановлю его?Я также видел, как кто-то упоминал установку classpath в OS X, но я не знаю.Мне действительно нужна помощь в решении этой проблемы, так как большая часть моей работы зависит от работы с затмением.Я бы предпочел не переустанавливать всю ОС только из-за этого, но если я не могу заставить ее работать, я думаю, что нет другой альтернативы.

С наилучшими пожеланиями Джонас Кристенссон

Ответы [ 3 ]

3 голосов
/ 08 апреля 2011

«Переустановить всю ОС»? Господи, нет.

Ваши проблемы не имеют ничего общего с версией Java. Вы не понимаете, как работает CLASSPATH.

Класс, который вы пытались запустить, не был в CLASSPATH. Если ваш друг дал вам JAR, вам нужно добавить его в CLASSPATH и использовать полностью разрешенное имя класса для его запуска.

Совет для вашего будущего психического здоровья: если у вас есть проблемы, не думайте о худшем и переходите к крайним мерам. Сначала попробуйте простые решения.

0 голосов
/ 01 мая 2013

Попробуйте скомпилировать с

javac -source 1.5 target 1.5 .....
0 голосов
/ 08 апреля 2011

Я попытался запустить файл jar, скомпилированный в java 1.6 от друга. ... Поскольку я использовал только Java 1.5, очевидно,

Обратите внимание, что если бы это было действительно так, вы бы получили java.lang.UnsupportedClassVersionError, поскольку Java 5 не может запускать классы, скомпилированные для Java 6 (возможно, это возможно, но файлы классов говорят: «Я Java 6+ "(версия класса 50) и, следовательно, Java 5 просто откажется его запускать (максимальная версия класса в Java 5 будет 49).

...