Подтвердить что ты не робот

Intellij внезапно бросает ClassNotFoundException

У меня здесь полная потеря. У меня есть проект на внешнем жестком диске LenseProject. Внутри LenseProject у меня есть папки .idea, lib, Natives и SRC. У меня также есть несколько текстовых файлов для чтения.

Когда я вчера ушел с работы, все это работало нормально. Придя сегодня утром, меня встретили:

Exception in thread "main" java.lang.ClassNotFoundException: QuadTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113) 

QuadTest является основным классом.

Информация, которая, я думаю, может быть полезной:

  • Если я прокомментирую импорт, я получаю соответствующие сообщения об ошибках. (Не удается найти символ и т.д.).

  • У меня есть 9 зависимостей, расположенных в lib\lwjgl-2.9.0\jar, которые настроены в структуре проекта → Библиотеки.

  • Модуль имеет LenseProject в качестве корня содержимого, а SRC - как исходной папке.

  • Уровень языка 7.0

  • У меня есть зависимости, установленные для экспорта в структуре проекта → Модули - > Зависимости.

  • В выводе компилятора я установил его для использования Output Compulate Output Path, как "Наследовать путь к компиляции проекта" дал мне "Не удается запустить компиляция: выходной путь не указан для модуля "LenseProject". Укажите путь вывода в Configure Project.

  • У меня есть опция VM -Djava.library.path=Natives.

  • Я могу скомпилировать и запустить программу через командную строку без проблем.

  • Мне не хватало моих настроек, когда я начал его сегодня утром. Мне пришлось снова установить SDK и библиотеки.

4b9b3361

Ответ 1

Откройте файл Idea → Структура проекта → Модули, а затем выберите проблемный модуль, на вкладке "Пути" выберите "Использовать путь к компиляции модуля".

Ответ 2

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

Затем я наткнулся на сообщение в блоге IntelliJ: http://blog.jetbrains.com/idea/2014/03/intellij-idea-13-1-released/

anet говорит:

21 марта 2014 года в 12:20

Вы можете удалить существующую зависимость junit и позволить IDEA добавлять JUnit-библиотеку для вашего использования с нуля.

Новый junit больше не связывает hamcrest, но все еще зависит от него во время выполнения.

Спасибо, Анна

Я удалил JUnit из своих настроек проекта и позволил IntelliJ добавить его обратно. Тогда все сработало нормально.

Ответ 3

В моем случае проблема заключалась в том, что я повторно использовал каталог "out" для вывода программы. Я решил его перенаправить вывод в другую папку.

Ответ 4

Я предлагаю подтвердить ваш Run Configuration следующим образом:

Панель инструментов: RunEdit Configurations..., подтвердите правильность конфигурации.

enter image description here

Надеюсь, что это поможет.

Ответ 5

Я знаю его немного старый пост, но для меня это помогло: Run → Edit Configurations → In Application Выбрали свой основной файл кода → Конфигурация на правой панели. Проверено "Использовать альтернативную JRE:" и выберите папку JDK с именем jre (.../Java/jdk.x.x.x_xx/jre). Применить и ОК. Я действительно новичок в intelliJ, но это решило мою проблему, надеюсь, что это поможет кому-то.

Ответ 6

Помог мне установить путь вывода mopdule.

Ответ 7

Моя проблема заключалась в том, что все это переименование структуры проекта, мои зависимости от Maven не помогли.

После изменения зависимостей maven в файле pom он работал.

Ответ 8

Файл → Структура проекта → Проект. Измените уровень языка проекта с "SDK default" на фактическую версию, которую вы используете.

Это странно, но решает проблему.

Ответ 9

У меня была похожая проблема. Новая зависимость не обнаружена при запуске tomcat. Проблема заключалась в том, что он не был развернут в /WEB-INF/lib. После полдня, стуча головой по столу, я нашел это видео на YouTube, которое исправило это.

По сути, мне нужно было добавить зависимости из модуля settings-> artifact-> MyWar-> вкладка Output Layout. Под доступными элементами откройте папку ваших проектов. Если там перечислены maven-зависимости, выберите их. Тогда прямо click-> Поместите в /WEB-INF/lib

Ответ 10

Попробуйте перейти к Preferences -> Compiler и выберите Eclipse, вместо использования javac.