Добавление папки JAR-файлов в мой путь

10

У меня есть инструменты Java, которые мне нужно использовать. Инструменты находятся в папке, полной файлов JAR. Я хотел добавить эту папку в мой путь, по очевидным причинам, но после того, как я отредактировал свой .bash_profile, чтобы включить новую папку в переменную $ PATH и получить ее, она не работает. Я также попытался выйти и снова войти в систему, и это тоже не сработало. Я просто продолжаю получать сообщение об ошибке «Невозможно получить доступ к jarfile .jar»

Дэви Кавана
источник
Вы проверили, если это не проблема с разрешениями?
matcheek
Вы должны извинить мое невежество, но как я могу это проверить?
Дэви Кавана
Вы можете проверить этот ответ: stackoverflow.com/questions/5569591/…
matcheek

Ответы:

5

Для файлов JAR вы должны установить CLASSPATH, а не переменную среды PATH.

Если вы используете BASH, это: export CLASSPATH="$CLASSPATH:<full_path_to_each_jar_files>"

Вам лучше добавить его в файл, .bashrcесли вы не знаете, что делаете.

Пример:

export CLASSPATH="$CLASSPATH:$HOME/java/lib/foebar.jar:$HOME/extra/lib/another.jar"

Но, конечно, если вы все еще вызываете jar-файл с классом Main, вы должны использовать для него полный путь:

java -jar $HOME/java/lib/main-prog.jar

Тем не менее, вы можете настроить его выполнение и запустить его:

chmod u+x $HOME/java/lib/main-prog.jar
export PATH=$PATH:$HOME/java/lib
main-prog.jar

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

Гюйгенс
источник
Я попытался экспортировать CLASSPATH = $ CLASSPATH: <my_new_path>, с заменой <my_new_path> фактическим путем к папке, источником и тем же результатом.
Дэви Кавана
Извините, моя ошибка, это не путь, а файл .jar с указанным вами полным путем, я обновлю ответ
Huygens
Означает ли это, что мне придется добавить в CLASSPATH новую запись для каждого файла JAR. Есть около 80 таких файлов JAR.
Дэви Кавана
@DavyKavanagh Примечание: не добавляйте переменную окружения в .bashrc, добавьте ее в .profile. См. Альтернатива .bashrc
Жиль "ТАК - перестань быть злым"
@DavyKavanagh извините за долгую задержку в ответе. Но да, это будет означать добавление файлов 80 jar в путь к классам.
Гюйгенс
2

Если ваши инструменты являются скриптами, которые содержат такие команды, как

 java -jar somejafile.jar

тогда вы должны отредактировать их, чтобы они содержали правильный путь

 java -jar /full/path/to/somefile.jar
Яри ​​Лааманен
источник
Нет, извините, инструменты - это сами файлы jar
Дэви Кавана