Что такое путь класса в java?

Я написал программу, которая отлично работает на моем ноутбуке, но я действительно хочу, чтобы она работала на сервере, который у меня есть. Используя NetBeans, я очистил и построил проект. Я скопировал содержимое папки dist на моем сервере, но я не могу работать, используя команду

java -jar nameOfFile.jar

Я получаю сообщение об ошибке

java.lang.NoClassDefFoundError: org/....

Я читаю кое-что, и из того, что я собираюсь, я должен в значительной степени указать, где находятся библиотеки, которые я использовал. Ну, они находятся в подпапке под названием lib.

Вопрос:

Итак, что мне нужно сделать, чтобы иметь возможность запускать мою банку?

Ответ 1

Попробуйте следующее:

java -classpath "$CLASSPATH:nameOfFile.jar:lib/*" path.to.your.MainClass

Что это значит, это установить путь к классу в значение $CLASSPATH, а также имяOfFile.jar, а также все файлы .jar в lib/.

Ответ 2

CLASSPATH - это переменная среды, которая помогает нам обучать виртуальную машину Java, откуда она начнет поиск .class файлов.

Мы должны сохранить корень иерархии пакетов в переменных среды CLASSPATH.

В случае добавления или использования библиотек jar в нашем проекте мы должны поместить местоположение файла jar в переменную среды CLASSPATH.

Пример: Если мы используем jar файл jdbc mysql в нашем проекте java, мы должны обновить местоположение файла jar mysql в переменной среды CLASSPATH. если наш mysql.jar находится в каталоге c:\driver\mysql.jar, то

Мы можем установить путь к классам через DOS в Windows

set CLASSPATH=%CLASSPATH%;c:\driver\mysql.jar 

В Linux мы можем сделать

export CLASSPATH=$CLASSPATH:[path of the jar]

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

Ответ 3

Q. What is classpath?

Ответ: Classpath - это параметр в виртуальной машине Java или компилятор Java, который specifies the location of user-defined classes and packages. Параметр может быть установлен либо в командной строке, либо через переменную окружения.

Пути к классам содержат:

  1. JAR файлы и

  2. Пути к вершине иерархии пакетов.

Q.Why we need to set classpath?

Ответ: По сути, classpath tells the location of classes которых расположены все классы.

Например, иногда нам нужно установить соединение с базой данных, тогда нам нужен jdbc mysql connector jar.

Q. What is JAR?

JAR (Java Archive) - это формат файла пакета, обычно используемый для объединения многих Java class files и связанных метаданных и ресурсов (текста, изображений и т.д.) В один файл для распространения прикладного программного обеспечения или библиотек на платформе Java.

Просто JAR: Collection of Classes.

Поэтому, чтобы установить связь с базой данных, мы должны установить местоположение Mysql Jar в переменных Classpath в java.

Вот почему нам нужен classpath в Java.

Ответ 4

Вам нужно установить путь к классу с помощью

Ниже приведено bash. Это временный

set CLASSPATH=$CLASSPATH=[put the path here for lib]

Если вы хотите, чтобы он был постоянным, вы можете добавить выше строки в файл ~/.bashrc

export CLASSPATH=$CLASSPATH:[put the path here for lib]:.

Ответ 5

Когда вы используете файл META-INF/MANIFEST.MF, чтобы указать зависимости Main-Class, необходимо также указать в манифест.

Переключатель -jar игнорирует всю информацию о других путях - подробнее см. tools.