classnotfoundexception java как исправить

Я пытаюсь запустить приложение Java, но получаю эту ошибку:

После того, как двоеточие появится в месте отсутствия класса. Однако я знаю, что это место не существует, поскольку класс находится в другом месте. Как я могу обновить путь к этому классу? Имеет ли он какое-то отношение к пути к классу?

Ваш путь к классу нарушен (что является очень распространенной проблемой в мире Java).

В зависимости от того, как вы запускаете свое приложение, вам нужно пересмотреть аргумент -cp , свою запись Class-Path в MANIFEST.MF или макет вашего диска.

Путь к классам — это список мест для загрузки классов.

Эти «местоположения» могут быть либо каталогами, либо файлами jar.

Для каталогов JVM будет следовать ожидаемому шаблону для загрузки класса. Если у меня есть каталог C:/myproject/classes в моем пути к классам, и я пытаюсь загрузить класс com.mycompany.Foo, он будет выглядеть под каталогом классов для каталог com, затем под этим каталогом mycompany, и, наконец, он будет искать файл с именем Foo.class в этом каталоге.

Во втором случае для jar файлов он будет искать файл jar для этого класса. Файл jar на самом деле представляет собой просто набор каталогов, подобных приведенным выше. Если вы распакуете файл jar, вы получите кучу каталогов и файлов классов по шаблону выше.

Итак, JVM пересекает путь класса от начала до конца, ища определение класса при попытке загрузить определение класса. Например, в пути к классам:

C:/MyProject/классы; C:/myproject/lib/stuff.jar; С:/myproject/lib/otherstuff.jar

Сначала JVM попытается найти в каталоге классы, затем в stuff.jar и, наконец, в otherstuff.jar.. p >

Когда вы получаете исключение ClassNotFoundException, это означает, что JVM прошел весь путь к классам и не обнаружил класс, который вы пытались ссылаться. Решение, как часто в мире Java, состоит в проверке вашего пути к классам.

Вы определяете путь к классам в командной строке, говоря java -cp, а затем ваш путь к классам. В среде IDE, такой как Eclipse, у вас будет опция меню для указания пути к классу.

Есть проект, написанный на java. При простом Run’e в Intellij Idea все прекрасно работает. Как только делаю jar и запускаю его в IDE, вылетает ClassNotFoundException . Вот полностью ошибка:

19 строчка в FirstSQliteEditor’e:

Сам драйвер прописан в Manifest.mf:

Как можно исправить ошибку?

2 ответа 2

Дело в том что IDEA имеет свой встроенный Manifest и при запуске она перечисляет все .jar файлы которые должны участвовать в работе программы. .jar файлы не содержат в себе все библиотеки которые нужны для работы программы (в отличии от .war и .ear ). поэтому нужно использовать Manifest и обеспечивать доступ к библиотеками при запуске .jar файла.

Доброго времени суток.
Изучая java я столкнулся с вопросом о требовании к фундаментальным знания, которых у меня не хватает.
Суть проблемы — имеем macos, 2 папки — src и bin
В src создал текстовый файл souttest.java в котором простейший HeloWorld
С помощью терминала выполнил компиляцию javac -d bin src/souttest.java после чего в папке bin создан файл test.class
Собственно проблема — если выполнять не из папки запуск программы то возникает ошибка — а именно
yr-2:test NG$ java bin/test.class
Exception in thread «main» java.lang.NoClassDefFoundError: bin/test/class
Caused by: java.lang.ClassNotFoundException: bin.test.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Но если выполнить следующий команды cd bin, а после java test (без .class)- выполняется корректно.

Помогите, пожалуйста, разобраться в проблеме

  • Вопрос задан более трёх лет назад
  • 1005 просмотров

Anonim Androidovich: Я предполагаю, что Java-машина не знает, где искать Ваш файл, поэтому его не находит.
Вот что слышно в гугле :
javarevisited.blogspot.ru/2011/01/how-classpath-wo.

Возможно он и прописан, но .class-файлы у Вас лежат, видимо, в другом месте

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий