Я знаю, что export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
добавит tools.jar в CLASSPATH, но я хочу установить папку в CLASSPATH
как это
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
но это не работает.
Я знаю, что export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
добавит tools.jar в CLASSPATH, но я хочу установить папку в CLASSPATH
как это
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
но это не работает.
Ответы:
Во-первых, как правило, установка env var CLASSPATH
обычно вызывает больше проблем, чем решает - поскольку не все приложения хотят / нуждаются в одном и том же пути к классам, и часто ломаются, когда нежелательные или даже ненужные файлы jar включены в путь к классам. Java-приложение должно включать только минимальное количество банок, которое требуется, не больше, не меньше.
Если у вас есть конкретные, отдельные приложения , которые требуют, чтобы установить путь к классам, то предпочтительным является , как правило , параметр командной строки: java -cp path1:path2:...
. Для значков рабочего стола можно изменить команду, чтобы включить эти параметры, или сценарии оболочки можно изменить, чтобы включить эти параметры.
Это сказанное (и так как всегда есть исключения из правила), то в зависимости от версии java (это требует java 6 или более поздней версии), вы можете указать, что целый каталог jar будет добавлен в classpath, добавив " *
" в конце каталога; например, следующее:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Средства:
/dir1/foo.jar
- (единственная банка) будет добавлена в путь к классам;/dir2/dir3
- все классы un-jar'd в этом каталоге будут добавлены в путь к классам (должны быть в правильной структуре пакета; например, com.my.Foo.class
должны быть в /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- все банки в этом каталоге (то есть /dir5/dir6/*.jar
) будут добавлены в путь к классам. Обратите внимание, что это " *
" не подстановочный знак (вы не можете использовать f*.jar
или даже *.jar
); это специальный символ, указывающий «добавить все банки»В общем случае, если вам нужно добавить целый каталог jar-файлов в путь к классам приложения, приложение было упаковано неправильно. Скорее, приложение должно иметь манифест, содержащий список банок, от которых он зависит. Или, по крайней мере, только один jar-файл должен быть добавлен в ваш classpath, и этот jar-файл может содержать весь список jar-файлов в некотором подкаталоге.
если вы хотите установить classpath навсегда, то 1) выясните, где установлена java .. вы можете использовать "whereis java" openjdk-7/6 находится в / usr / lib / jvm / .....
2) нам нужно настроить CLASSPATH в / etc / environment
sudo gedit /etc/environment
3) добавьте следующие лайки .. (НЕ ОСТАВЛЯЙТЕ ЛЮБЫЕ ПРОСТРАНСТВА ПРИ ПЕЧАТИ) (настройте в соответствии с вашей версией Java и установкой) (этот домашний путь для open jdk 7)
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/bin"
export JAVA_HOME
CLASSPATH=".:/usr/lib/jvm/java-7-openjdk-i386/lib:/home/laptop/Desktop/a2"
export CLASSPATH
отдельный каталог с помощью ":"