Wiem, że export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
doda tools.jar do CLASSPATH, ale chcę ustawić folder na CLASSPATH
lubię to
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
ale to nie działa.
Wiem, że export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
doda tools.jar do CLASSPATH, ale chcę ustawić folder na CLASSPATH
lubię to
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
ale to nie działa.
Odpowiedzi:
Po pierwsze, ogólnie ustawienie env var CLASSPATH
zwykle powoduje więcej problemów niż rozwiązuje - ponieważ nie wszystkie aplikacje chcą / potrzebują tej samej ścieżki klasy, i często psują się, gdy w ścieżce klasy znajdują się niepożądane lub nawet niepotrzebne słoiki. Aplikacja Java powinna zawierać tylko minimalną wymaganą liczbę słoików, nie więcej, nie mniej.
Kiedy masz konkretne, indywidualne aplikacje, które wymagają, że ścieżka klasy zostać ustawiona, wtedy jest korzystne zazwyczaj opcja wiersza polecenia: java -cp path1:path2:...
. Ikony pulpitu mogą zostać zmienione, aby uwzględnić te opcje, lub skrypty powłoki można zmodyfikować, aby uwzględnić te opcje.
Biorąc to pod uwagę (a ponieważ zawsze są wyjątki od reguły), to w zależności od wersji java (wymaga java 6 lub nowszej), można określić, że do ścieżki klas należy dodać cały katalog słoików, dodając „ *
” na końcu katalogu; np .:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Znaczy:
/dir1/foo.jar
- (pojedynczy słoik) zostanie dodany do ścieżki klasy;/dir2/dir3
- wszystkie niezagregowane klasy w tym katalogu zostaną dodane do ścieżki klasy (musi mieć odpowiednią strukturę pakietu; np. com.my.Foo.class
musi być w /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- wszystkie słoiki w tym katalogu (tj. /dir5/dir6/*.jar
) zostaną dodane do ścieżki klasy. Pamiętaj, że ten „ *
” nie jest symbolem wieloznacznym (nie możesz go użyć, f*.jar
a nawet *.jar
); jest to znak specjalny wskazujący „dodaj wszystkie słoiki”Ogólnie rzecz biorąc, jeśli musisz dodać cały katalog słoików do ścieżki klasy aplikacji, aplikacja nie została poprawnie spakowana. Aplikacja powinna raczej zawierać manifest zawierający listę słoików, od których zależy. Lub przynajmniej jeden słoik powinien zostać dodany do ścieżki klasy, a ten słoik może mieć w swojej manifestu całą listę słoików w pewnym podkatalogu.
jeśli chcesz ustawić ścieżkę klasy na stałe, to 1) dowiedz się, gdzie jest zainstalowana java. Możesz użyć „whereis java” openjdk-7/6 znajduje się w / usr / lib / jvm / .....
2) musimy skonfigurować CLASSPATH w / etc / environment
sudo gedit /etc/environment
3) dodaj następujące polubienia .. (NIE POZOSTAWIAJ ŻADNYCH PRZESTRZENI PODCZAS PISANIA) (dostosuj zgodnie z wersją Java i instalacją) (ta ścieżka główna jest przeznaczona dla otwartego 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
oddziel katalog przez „:”