2009-03-02 2 views

ответ

5
export CLASSPATH=/your/stuff/ 

или сохраняющие общесистемные настройки:

export CLASSPATH=$CLASSPATH:/your/addition/ 
3

Если вы имеете в виду путь к классам Java (из вашего тега), то это только отличается от Windows с точки зрения разделителей путей (: вместо;). Например,

java -classpath /mydir/mylib.jar:/otherdir/otherlib.jar com.MyProgram -Xmx64m 
2

Я не думаю, что у вас должна быть переменная среды Systempathpath в Linux или любой другой операционной системе.

Каждый проект должен иметь свои собственные настройки траектории. Обычно они устанавливаются сценариями или соглашениями, поэтому нет необходимости в переменной системной среды.

Кроме того, что бы вы сделали, если бы у двух проектов были конфликтующие JAR-запросы?

Будет ли этот путь к классу окружения включать каждый JAR, необходимый для каждого проекта на вашем компьютере? Это не практично.

Переменная окружения classpath, возможно, была стандартом с Java 1.0, но я не думаю, что это должно быть сейчас.

+0

Переменная classpath может быть установлена ​​для каждого процесса, то есть для текущей оболочки и ее порожденных дочерних процессов. Это обычное использование в unix в сценариях запуска java. – ordnungswidrig

2

Создайте небольшой скрипт, который устанавливает: путь к классам

#!/bin/bash 
export JAVA_HOME=... 

cp=$(find lib -name "*.jar" -exec printf :{} ';') 
if [[ -n "$CLASSPATH" ]]; then 
    cp="$cp;CLASSPATH" 
fi 

"$JAVA_HOME/bin/java" -classpath "$cp" ... 
+0

Вы можете опустить -classpath «$ CLASSPATH», потому что в java-процессе будет использоваться содержимое переменной среды CLASSPATH anymway. – ordnungswidrig

+0

Я расширил свой пример, чтобы построить classpath; теперь он покидает CLASSPATH, поэтому дочерние процессы могут получить исходную версию. –

Смежные вопросы