2017-02-02 12 views
0

После преобразования моего проекта (просто Java 1.8, ничего особенного) в eclipse (Mars.2) в Maven (щелкните правой кнопкой мыши проект project => Configure => Maven) вдруг я не могу запустить обычные классы, которые всегда работали раньше, получаю сообщение:Внезапно NoClassDefFoundError в Eclipse (и только там)

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils 
    at eas.veryFastPDF.script.RepresentableDefault.<init>(RepresentableDefault.java:169) 
    at eas.veryFastPDF.script.RepresentableDefault$1.<init>(RepresentableDefault.java:1336) 
    at eas.veryFastPDF.script.RepresentableDefault.<clinit>(RepresentableDefault.java:1336) 
    at eas.veryFastPDF.HelpTexts.<clinit>(HelpTexts.java:525) 
    at eas.GlobalVariables.<clinit>(GlobalVariables.java:52) 
    at eas.plugins.PluginFactory.deserializePlugins(PluginFactory.java:220) 
    at eas.plugins.PluginFactory.loadPluginsFromFile(PluginFactory.java:127) 
    at eas.plugins.PluginFactory.<clinit>(PluginFactory.java:118) 
    at eas.startSetup.ParCollection.complete(ParCollection.java:1304) 
    at eas.startSetup.Starter.main(Starter.java:1924) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 10 more 

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

Некоторые более странные вещи об этом:

  • Переключение обратно на старую версию без Maven не работает.
  • Очистка проекта не работает.
  • Очистка нового заказа проекта не работает.
  • Даже установка новой версии Eclipse (Neon.2 - все равно должна была случиться) не работает.
  • Запуск за пределами затмения с использованием командной строки. Работает!
  • EDIT: теперь я даже удалил и переустановил Java - все равно работать не будет.

Что, черт возьми, происходит ???

EDIT: Я, очевидно, проверял все ответы из предложенного «дублирующего» вопроса, и они не будут работать. Пожалуйста, не отмечайте как дубликат - это не так!

+0

При запуске за пределами затмения в командной строке вы компилируете ранее maven тоже? Или вы просто запускаете свой основной класс? – pablo

+0

Нет, там я использую простую Java-команду вроде этого: java -Xmx15000M -cp "./* ;." eas.startSetup.Starter – Duke

+0

Возможный дубликат [Strange "java.lang.NoClassDefFoundError" в Eclipse] (http://stackoverflow.com/questions/2233656/strange-java-lang-noclassdeffounderror-in-eclipse) – Winter

ответ

1

Это то, что в конце концов (через несколько часов) работало для меня:

я удалил все вещи затмения хранятся в папке рабочего пространства - более точно, в основном каждая папка, начиная с точкой. (Вероятно, было бы достаточно только папки .metadata, но мне не нужно нервничать, чтобы изучить это глубже.)

По-видимому, что-то о пути к классам постоянно хранится в рабочей области, поэтому переход к более ранней версии didn Решить мою проблему.

Просто предупреждение: это решение действительно сработало, но очистка рабочего пространства, подобного этому, позволит затмению забыть практически все!