Мои библиотеки в Netbeans Project не работают [дубликаты]

Если возможно, вы должны связать каждую общую библиотеку dlopen () с аргументами компоновщика, чтобы заставить ее разрешать все ее символы при создании библиотеки. Таким образом, вы можете быть уверены, что знаете, откуда все ваши символы. («-z defs», например, под Linux x86)

Таким образом, если вы добавите новый исходный файл, но забудьте добавить объект к ссылке, вы не будете царапать голову, потому что ошибки времени выполнения из dlopen / dlsym.

69
задан vaxquis 5 June 2017 в 14:20
поделиться

17 ответов

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

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

23
ответ дан Thorbjørn Ravn Andersen 17 August 2018 в 12:22
поделиться
  • 1
    Можете ли вы, пожалуйста, больше затмить? Что мне нужно сделать? – user2426316 1 July 2013 в 17:03
  • 2
    Ваш вопрос не содержит достаточной информации для предоставления более конкретного ответа. Подумайте о добавлении этого. – Thorbjørn Ravn Andersen 1 July 2013 в 17:06

Добавьте полный путь к файлу jar в CLASSPATH. В linux используйте: export CLASSPATH=".:/full/path/to/file.jar:$CLASSPATH". Другой способ работы (без редактирования CLASSPATH) разворачивал банку в текущей папке проекта.

Для меня не работали:

1) Используя опцию -cp с полным путь к файлу jar.

2) Используя -cp только с именем jar, если он находится в текущей папке

3) Копирование флага в текущую папку проекта

4) Копирование банки в стандартное расположение java-банок (/ usr / share / java)

Это решение сообщается для класса com.mysql.jdbc.Driver в mysql-коннекторе -java.5 - *. jar, работающий на Linux с OpenJDK версии 1.7

2
ответ дан Annonnymous Person 17 August 2018 в 12:22
поделиться
  • 1
    Только разоблачение JAR работало для меня, ни одно из других решений не делало – OverCoder 5 June 2016 в 23:05

Я использую maven для моего проекта, и когда я делаю mvn clean install и пытаюсь запустить программу, он выдает исключение. Итак, я очищаю проект и запускаю его снова, и он работает для меня.

Я использую eclipse IDE.

Для:

Класс не найден Исключение при запуске теста Junit

Попробуйте запустить mvn clean test, как только он скомпилирует все тестовые классы (работал для меня).

3
ответ дан Arun 17 August 2018 в 12:22
поделиться
  • 1
    в какой каталог вы были, когда вы запускали «mvn clean test» ?? это в том же каталоге, что и POM? – TacoB0t 27 March 2018 в 16:19
  • 2
    Да. Отредактируйте его из каталога, в котором присутствует файл pom. – Arun 27 March 2018 в 18:26

Поместите весь код в блок try, затем поймайте исключение в блоке catch

try
{
    // code
}
catch(ClassNotFoundException e1)
{
    e1.getmessage();
}
-3
ответ дан C. Leung 17 August 2018 в 12:22
поделиться
  • 1
    Это исключает исключение. Это скрывает исключение. Кроме того, "e1.getmessage ()" а) неправильная капитализация getMessage () и b) не собирается делать очень много, поскольку возвращает строку с сообщением, и вы не печатаете ее или не регистрируете ее или что-то еще! – IBBoard 30 August 2016 в 12:15

Я пытался запустить .jar из кода C #, используя класс Process. Код java успешно запускался из eclipse, но не из Visual Studio C # и даже щелкнув непосредственно на файле jar, он всегда останавливается с исключением ClassNotFoundException:. Решение для моего было экспортировать java-программу как «Runnable JAR-файл» вместо «JAR-файл». Надеюсь, это может помочь кому-то.

0
ответ дан Dani Aya 17 August 2018 в 12:22
поделиться

Если вы используете maven, попробуйте maven обновить все проекты и заставить моментальные снимки. Он также очистит и перестроит все пути класса. Он решил мою проблему ..

1
ответ дан ibrahimgunes 17 August 2018 в 12:22
поделиться

Чтобы добавить местоположение класса в ваш путь к классам через командную строку, просто добавьте -cp или -classpath и местоположение класса во время его запуска. IE

java -cp "c:/location/of/file" YourProgram

Или если вы используете IDE, например eclipse, вы можете щелкнуть правой кнопкой мыши по project -> build path -> configure build path и добавить внешний JAR, содержащий ваш класс, в путь сборки, тогда он должен работать нормально.

2
ответ дан Imane Fateh 17 August 2018 в 12:22
поделиться

Я столкнулся с этим и попробовал все другие решения. У меня не было файла .class в моей папке HTML, у меня был только файл .java. Когда я добавил файл .class, программа работала нормально.

1
ответ дан Jason Robertson 17 August 2018 в 12:22
поделиться

Если вам известен путь класса или jar, содержащий класс, то добавьте его в свой путь к классу во время его запуска. Вы можете использовать путь к классам, как указано здесь:

в Windows

java -classpath .;yourjar.jar YourMainClass

в UNIX / Linux

java -classpath .:yourjar.jar YourMainClass
4
ответ дан Juned Ahsan 17 August 2018 в 12:22
поделиться

Я только что сделал

1.Включить тайники и перезагрузить

2. Восстановить мой проект, который решил проблему

1
ответ дан Jyoti JK 17 August 2018 в 12:22
поделиться

Использовать ';' как разделитель. Если переменные среды установлены правильно, вы должны увидеть свои настройки. Если ваши PATH и CLASSPATH верны, окна должны распознавать эти команды. Вам не нужно перезагружать компьютер при установке Java.

2
ответ дан Kiran S 17 August 2018 в 12:22
поделиться
  • 1
    То есть на окнах (точка с запятой), в unix / linux это:: (двоеточие) – Joeblade 19 January 2015 в 09:38
  1. Это может произойти, если ваш путь к классам неверен
  2. . Положим сериализуемый класс и десериализуемый класс под тем же именем проекта. Вы запускаете сериализуемый класс, создавая сериализуемый объект в определенной папке. Теперь вам нужны десериализованные данные. Тем временем, если вы измените название проекта, это не сработает. Сначала необходимо запустить сериализуемый класс, а затем десериализовать файл.
1
ответ дан Nathaniel Ford 17 August 2018 в 12:22
поделиться

Это наилучшее решение , которое я нашел до сих пор.

Предположим, что у нас есть пакет с именем org.mypackage, содержащий классы:

  • HelloWorld (основной класс)
  • SupportClass
  • UtilClass

и файлы, определяющие этот пакет, хранятся физически в каталоге D:\myprogram (в Windows ) или /home/user/myprogram (в Linux).

Структура файла будет выглядеть так:

Когда мы вызываем Java, мы указываем имя приложение для запуска: org.mypackage.HelloWorld. Однако мы также должны сказать Java, где искать файлы и каталоги, определяющие наш пакет. Поэтому для запуска программы мы должны использовать следующую команду:

ПРИМЕЧАНИЕ. Вы должны выполнить вышеуказанную команду java, независимо от того, какое ваше текущее местоположение , Но это не относится к javac. Для компиляции вы можете даже напрямую перейти в каталог, в котором у вас есть файлы .java, и напрямую выполнить javac ClassName.java.

8
ответ дан Ram Patra 17 August 2018 в 12:22
поделиться

Это может произойти в Windows после обновления java, где отсутствует старая версия java SDK и присутствует новый. Я бы проверил, использует ли ваша IDE установленную версию SDK Java (IntelliJ: CTRL + SHIFT + ALT + S)

0
ответ дан s5s 17 August 2018 в 12:22
поделиться

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

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

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

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

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

C: / myproject / classes; C: /myproject/lib/stuff.jar; C: /myproject/lib/otherstuff.jar

JVM попытается сначала посмотреть в классах каталогов, а затем в stuff.jar и, наконец, в otherstuff.jar.

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

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

26
ответ дан user2000590 17 August 2018 в 12:22
поделиться

Перейти вверху и удалить оператор импорта, если он есть, и повторно импортировать класс. Но если это не так, сделайте чистую сборку. Вы используете Netbeans или Eclipse?

1
ответ дан yams 17 August 2018 в 12:22
поделиться
0
ответ дан Parth Patel 29 October 2018 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: