java.lang.ClassNotFoundException when running in IntelliJ IDEA
java .lang.Исключение ClassNotFoundException при запуске в IntelliJ IDEA
Я создаю программу для работы с базами данных и получаю следующую ошибку при компиляции в IntelliJ IDEA. Кто-нибудь знает, почему это происходит и как я мог бы это решить?
Переведено автоматически
Ответ 1
Ошибка, которую вы получаете, возникает не при завершении, а при попытке запустить ваше приложение. Это происходит потому, что Java не смогла найти Table.class файл внутри db подкаталога выходного каталога проекта (classpath).
Table.javaисключен из компиляции (случайно или намеренно, потому что он содержал ошибки, и вы хотели пропустить его при работе над другим кодом)
класс не скомпилирован, потому что шаг сборкиисключен из шагов перед запуском в конфигурации Запуска / отладки
проект неправильно настроен, и для каталога, содержащего исходный кореньdb
Table.java содержит неверный package оператор или находится / перемещен в другой пакет
путь к проекту содержит двоеточие : на Mac / Linux или точку с запятой ; в Windows, он используется для разделения пути к классу и делает путь к классу недействительным. Подробности смотрите в этой теме. Обратите внимание, что Finder на Mac может отображать двоеточия в пути в виде косых черт.
jar может не выполняться, если один из зависимых jar имеет цифровую подпись, поскольку новый артефакт будет включать частичную подпись зависимости. Смотрите Этот ответ для получения более подробной информации.
В структуре проекта убедитесь, что у вас выбрана правильная версия Java для компиляции.
существует известная ошибка, заключающаяся в том, что иногда проект Java, созданный из шаблона командной строки, не работает, потому что .idea/modules.xml файл ссылается на недопустимый файл модуля с именем untitled104.iml. Исправьте имя модуля вручную или создайте проект с нуля и не используйте шаблон.
в Windows включена настройка региона "Beta: используйте Unicode UTF-8 для поддержки языков по всему миру". Смотрите IDEA-247837 для получения более подробной информации и обходных путей.
Когда IntelliJ IDEA настроен на хранение зависимостей модулей в формате Eclipse, корневая конфигурация исходного кода теряется из-за известной ошибки. Настройте модуль на использование зависимостей формата IntelliJ IDEA в качестве обходного пути.
В правильно настроенном проекте и при правильной конфигурации запуска / отладки все работает просто отлично:
Ответ 2
jar может не выполняться, если один из зависимых jar имеет цифровую подпись, поскольку новый артефакт будет включать частичную подпись зависимости. Смотрите Этот ответ для получения более подробной информации.
Я должен еще раз подчеркнуть точку зрения CrazyCoder здесь.
JVM (Oracle) раньше выдавала исключение SecurityException при попытке запустить Jar-файл, содержащий неработающие подписи. Это имело смысл с точки зрения "Что не так".
Это больше не так. Они действительно выдают ClassNotFoundException сейчас - даже если класс находится прямо в файле (независимо от того, находится ли он в пакете по умолчанию / верхнего уровня или намного ниже во вложенной структуре пакета).
Ответ 3
Вот что сработало у меня:
Я удалил .ide папку, .iml файл. И все другие автоматически сгенерированные IntelliJ файлы, затем перезапустил мою ide, и меня спросили, хочу ли я запустить свой проект с maven, вот и все.
Очевидно, я сказал "да" :)
Ответ 4
Это известная ошибка в IntelliJ idea. Чтобы исправить это, я просто удалил .iml и .idea и перезапустил IDE. Это работает в большинстве случаев
Редактировать: файлы будут находиться в каталогах проекта.