2012-01-29 26 views
38

Jak ustawić opcję Java CLASSPATH, tak aby wskazywała jeden lub więcej katalogów zawierających wiele plików JAR? Czy są dostępne symbole wieloznaczne dla rekurencyjnego katalogu i podkatalogu?Ustaw folder dla ścieżki klasy

(. Moje pliki JAR są klasyfikowane w kilku podkatalogów)

+1

Ścieżka do katalogu najwyższego poziomu powinna wystarczyć. – kosa

+6

Dup of http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath – Vadzim

Odpowiedz

54

Jeśli używasz Java 6 lub wyższej można używać symboli wieloznacznych z tego formularza:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp 

Jeśli chcesz dodać Wszystkie podkatalogów lib \ a \, \ b \ lib, lib \ c \, nie jest to mechanizm w oprócz:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp 

nie ma nic lib\*\* lub lib\** wag ildcard dla rodzaju pracy, którą chcesz wykonać.

+14

To nie moja opinia. To właśnie stąd http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html Cytat: 'Podfoldery nie są wyszukiwane rekursywnie. Na przykład foo/* szuka plików JAR tylko w foo, nie w foo/bar, foo/baz, itp. ' – msi

+9

A jeśli zastanawiasz się, dlaczego ścieżka ma".; " na początku należy upewnić się, że istniejące ścieżki klas ustawione w systemie za pomocą zmiennych env itp. nie są nadpisane. –

+6

@ msi Przepraszam, moim celem było podziękować za odpowiedź. – MJM

6

Użyj polecenia jako

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name> 

Powyższe polecenie ustawi wspomniane ścieżki do ścieżki klasy tylko raz za wykonanie klasę o nazwie TestClass.

Jeśli chcesz wykonać więcej niż jeden klas, można obserwować tą

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*" 

Po tym można wykonać dowolną liczbę klas, jak chcesz po prostu przez wpisanie

java <your-class-name> 

powyższych Polecenie będzie działać do momentu zamknięcia wiersza polecenia. Ale po zamknięciu wiersza polecenia, jeśli ponownie otworzysz wiersz polecenia i spróbujesz wykonać niektóre klasy, musisz ponownie ustawić ścieżkę klas za pomocą dowolnej z powyższych dwóch metod. (Pierwsza metoda wykonywania jednej klasy i drugiej jeden do realizacji większej liczby klas)

Jeśli chcesz ustawić classpth tylko raz, tak aby mogła ona pracować za każdym razem, a następnie wykonaj następujące czynności

1. Right click on "My Computer" icon 
2. Go to the "properties" 
3. Go to the "Advanced System Settings" or "Advance Settings" 
4. Go to the "Environment Variable" 
5. Create a new variable at the user variable by giving the information as below 
    a. Variable Name-  classpath 
    b. Variable Value- .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\* 
6.Apply this and you are done. 

Pamiętaj, to będzie działać za każdym razem. Nie trzeba bezpośrednio ustawiać ścieżki klas.

UWAGA: Jeśli chcesz dodać inne biblioteki po jakimś dniu, nie zapomnij dodać średnika na końcu "zmiennej wartości" "Zmiennej środowiska", a następnie wpisz ścieżkę twoich nowych bibliotek po średniku. Ponieważ średnik oddziela ścieżki różnych katalogów.

Mam nadzieję, że to ci pomoże.

Powiązane problemy