So che export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
aggiungerà tools.jar a CLASSPATH, ma voglio impostare la cartella su CLASSPATH
come questo
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
ma non funziona.
So che export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
aggiungerà tools.jar a CLASSPATH, ma voglio impostare la cartella su CLASSPATH
come questo
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
ma non funziona.
Risposte:
Innanzitutto, in generale, l'impostazione di env var di CLASSPATH
solito causa più problemi di quanti ne risolva, poiché non tutte le app desiderano / necessitano dello stesso percorso di classe e spesso si rompono quando nel percorso di classe sono inclusi barattoli indesiderati o addirittura non necessari. Un'app java dovrebbe includere solo il numero minimo di barattoli necessari, né più né meno.
Quando si dispone di specifiche, singole applicazioni che richiedano che il percorso di classe impostare, poi di solito l'opzione della riga di comando è preferito: java -cp path1:path2:...
. È possibile modificare il comando delle icone del desktop per includere queste opzioni oppure è possibile modificare gli script della shell per includere queste opzioni.
Detto questo (e poiché ci sono sempre eccezioni alla regola), quindi a seconda della versione di java (questo richiede java 6 o successive), è possibile specificare che un'intera directory di barattoli venga aggiunta al classpath aggiungendo un " *
" alla fine di una directory; ad esempio, quanto segue:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Si intende:
/dir1/foo.jar
- (il singolo vaso) verrà aggiunto al percorso di classe;/dir2/dir3
- tutte le classi senza vaso in questa directory verranno aggiunte al percorso di classe (deve essere nella struttura del pacchetto corretta; ad esempio, com.my.Foo.class
deve essere in /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- tutti i barattoli in questa directory (cioè, /dir5/dir6/*.jar
) verranno aggiunti al percorso di classe. Si noti che questo " *
" non è un carattere jolly (non è possibile utilizzare f*.jar
o addirittura *.jar
); è un carattere speciale che indica "aggiungi tutti i barattoli"In generale, se è necessario aggiungere un'intera directory di vasetti al percorso di classe dell'applicazione, l'app non è stata raggruppata correttamente. Piuttosto, l'app dovrebbe avere un manifest contenente l'elenco dei barattoli da cui dipende. O almeno, solo un barattolo dovrebbe essere aggiunto al tuo percorso di classe, e quel barattolo può avere nel suo manifesto l'intero elenco di barattoli in qualche sottodirectory.
se vuoi impostare il classpath in modo permanente allora 1) scopri dove è installato java .. puoi usare "whereis java" openjdk-7/6 in / usr / lib / jvm / .....
2) dobbiamo impostare CLASSPATH in / etc / environment
sudo gedit /etc/environment
3) aggiungi i seguenti Mi piace .. (NON LASCIARE QUALSIASI SPAZIO DURANTE LA digitazione) (personalizza in base alla tua versione e installazione java) (questo percorso principale è per 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
directory separata per ":"
terminale aperto e digitare
sudo nano ~ / .bashrc
aggiungi tutte le esportazioni di cui hai bisogno come ...
export JAVA_HOME = / usr / local / java / jdk1.6.0_06 (il tuo percorso)
export ANT_HOME = / opt / ant / apache-ant-1.9.4
riavviare infine il terminale per rendere effettive le modifiche