2011-08-14 16 views
5

Mam prosty plik Java Q.java, który zależy od zewnętrznego pliku biblioteki X.jar. Zarówno Q.java, jak i X.jar znajdują się w tym samym katalogu. Mogę skompilować Q.java z wiersza poleceń, wykonując polecenie: "javac -cp X.jar Q.java". Generuje to plik Q.class. Jak uruchomić to teraz? Próbowałem to wszystko:Uruchamianie programu Java z wiersza poleceń, który zależy od pliku JAR?

1) java Q 2) java Cp X.jar Q

Wciąż otrzymuję Wyjątek w wątku "głównym" java.lang.NoClassDefFoundError: Q Spowodowany przez: Java .lang.ClassNotFoundException: Q

Jak mogę uruchomić to z wiersza poleceń teraz, gdy mam plik klasy?

+0

Czy w Q.java jest deklaracja "pakietu"? –

+0

@TedHopp Czy to miałoby znaczenie? Mam podobny problem: http://stackoverflow.com/questions/43156180/classpath-option-works-for-javac-but-not-for-java-windows –

Odpowiedz

10
java -cp X.jar:. Q 

Musisz określić w ścieżce klas, czy chcesz używać zależności JAR ORAZ bieżącego lokalnego katalogu do rozdzielania klas.


Edit sugerowane w komentarzach:

W systemie Windows, należy wymienić : przez ;:

java -cp X.jar;. Q 
+4

W Windowsie musisz użyć ";", nie ":", więc nie byłoby "java -cp X.jar ;. Q" –

0

Ustaw aktualny katalog w ścieżce klas, powinno rozwiązać problem. W większości przypadków potrzebujemy bieżącego katalogu w ścieżce klas, więc generalnie radzę ustawić "." (bez cudzysłowów) w systemie zmienna środowiskowa CLASSPATH zamiast ustawienia dla każdego uruchomienia.

Powiązane problemy