2009-11-05 12 views
103

Próbuję użyć javac z wiersza polecenia systemu Windows, ale to nie działa.javac nie działa w wierszu polecenia systemu Windows

Po dodaniu katalogu "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin \" na końcu zmiennej środowiskowej ścieżka polecenia java działa poprawnie, ale użycie javac daje mi następujący błąd:

'javac' is not recognized as an internal or external command, operable program or batch file. 

Wszelkie pomysły? Dzięki.

Odpowiedz

127

Dodanie go w panelu sterowania, gdy okno wiersza polecenia jest otwarte, nie ma wpływu na bieżący wiersz polecenia. Musisz zamknąć i ponownie otworzyć lub po prostu zrobić:

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin" 

drodze kontroli, należy wykonać:

echo %path% 

z wiersza poleceń i daj nam znać, co to jest.

W przeciwnym razie, upewnij się jest javac w tym katalogu, starając:

"c:\program files\java\jdk1.6.0_16\bin\javac.exe" 

z wiersza poleceń. Można również powiedzieć która wykonywalny (jeśli w ogóle) jest używany z poleceniem:

for %i in (javac.exe) do @echo %~$PATH:i 

To jest miłe sztuczka podobna do which i/lub whence poleceń w niektórych systemach operacyjnych typu UNIX.

+11

ah tak, wszystko, co musiałem zrobić ponownie otworzyć wiersz polecenia i to działało dobrze, dzięki! – Domenic

+1

+1. "Dla% i in (java.exe) do @echo% ~ $ PATH: i" właśnie uratował mój dzień. Jestem po prostu okazjonalnym użytkownikiem systemu Windows i po prostu nie wiedziałem, że może być jeszcze jeden ukryty plik java.exe w folderze c: \ windows \ system :) –

+1

Powyższa komenda set path nie działa dla mnie pod oknami 7. Musiałem use set path = "% path%; c: \ program files \ java \ jdk1.6.0_16 \ bin To bez cytatów! Nie jestem zaznajomiony z wierszem poleceń Windows, ale wydaje się, że cytaty są zachowywane. % path% sprawi, że będzie całkowicie bezużyteczny – user716468

-7

Podaj jako "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin". Wyjąć odwrotny ukośnik będzie działać

+1

Nie sądzę, że to prawda. Mogę ustawić, że moja ścieżka to nic innego jak "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin \" (z końcowym ukośnikiem) i nadal działa poprawnie. – paxdiablo

2

po prostu musiałem to zrobić, aby uzyskać to działa na windows 7 64.

otworzyć wiersz polecenia (cmd.exe) i typ:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin 

Upewnij się, że ponownie uruchomiłeś wszystkie wiersze poleceń systemu Windows, aby zaktualizować również zmienną środowiskową.

+1

Podejrzewam, że ustawienie opcji classpath jest lepsze. Nie używałbym zmiennej CLASSPATH, szczególnie nie w systemie Windows, w którym jest globalna i wpływa na wiele JRE ... – eckes

5

Wiem, że to nie może być twój konkretny błąd, ale miałem kiedyś wiodącą przestrzeń na mojej ścieżce i java działałaby, ale javac nie.

Za to, co jest warte, proponuję poradę mędrca: "Zbadaj uważnie swoją Drogę".

83

System operacyjny Windows wyszukuje bieżący katalog i katalogi wymienione w zmiennej środowiskowej PATH dla wykonywanych programów. Programy JDK (takie jak javac.exe i Java runtime java.exe) znajdują się w katalogu "\ bin" (gdzie oznacza katalog zainstalowany w JDK, np. C: \ Program Files \ Java \ jdk1.8.0_xx). Musisz dołączyć katalog "\ bin" do PATH.

Aby ustawić zmienną środowiskową PATH w systemie Windows XP/Vista/7/8:

  1. Panelu sterowania ⇒ Systemu ⇒ Zaawansowane ustawienia systemu

  2. Przełącz na zakładkę "Zaawansowane" ⇒ Zmienne środowiskowe

  3. W "Zmienne systemowe", przewiń w dół, aby wybrać "ścieżka" ⇒ Edit

((teraz przeczytać następujące 3 razy przed kontynuowaniem NIE JEST UNDO))

W "zmienna" pola, włóż "c: \ Program Files \ Java \ jdk1.8.0_xx \ bin" (Zastąp xx numerem aktualizacji i sprawdź, czy jest to twój katalog binarny JDK !!!). PRZED wszystkimi istniejącymi katalogami, a następnie średnikiem (;), który oddziela katalog binarny JDK od reszty istniejących katalogów. NIE USUWAJ żadnych istniejących pozycji; w przeciwnym razie niektóre istniejące aplikacje mogą nie działać.

Variable name : PATH 
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...] 

Screenshot

+1

to jest to, który pracował dla mnie. Dzięki ! – WhySoSerious

+4

+1 dla dużej litery "ŚCIEŻKA" –

+0

Dla kroku 4. Stwierdziłem, że muszę wybrać nie, ale jdk . Wtedy wszystko inne działało dobrze. – morganw09dev

-3

Kiedy próbowałem dokonać .java do .class polecenia javac nie działał. Zrobiłem to działając przechodząc do C: \ Program Files (x86) \ Java \ jdk1.7.0_04 \ bin i kiedy byłem w tym katalogu wpisałem Javac.exe C \ Test \ test.java i zrobiłem klasę z tym taktyka. Wypróbuj to.

-1

"; C: \ Program Files \ Java \ jdk1.6.0 \ bin" czasami możesz zapomnieć wstawić średnik na ostatniej istniejącej ścieżce.

1

OK, nie może tak być zawsze, ale wielu z nas popełniło ten błąd w przeszłości, a niewielu z nich wciąż nie jest tego świadomych, co oznacza, że ​​za każdym razem, gdy dodajesz ścieżkę (dowolną ścieżkę) dowolnego zmienna środowiskowa, najprawdopodobniej natrafisz na spację tuż po "średniku" (jak zwykle po "okresie" podczas pisania w edytorze).

Spowoduje to utworzenie wiodącego miejsca w ścieżce np. "C: \ Program Files \ Java \ jdk1.6.0 \ bin", a zatem system "javac.exe" nie zostanie znaleziony.

4

wypróbuj rozwiązania tutaj: http://techdem.centerkey.com/2009/05/javahome-command-script.html

te są znacznie bardziej odporne na zmiany - jak podczas uaktualniania JDK lub JRE, ponieważ nie ma na sztywno ścieżki.

Szybkie rozwiązanie (jeśli nie chcesz czytać blog) jest

C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i 
C:\>set PATH=%PATH%;%JAVA_HOME% 

Następnie można dodać te linie do skryptu uruchamiania/logowania.

+2

Aby wywołać javac w ten sposób, musiałem użyć "set PATH =% PATH%;% JAVA_HOME% \ bin" (zauważ dodany \ bin). – user31389

27

Po długim Google, poznałem, że musi być w środku javac.exe JDK (C: \ Program Files \ Java \ jdk (numer wersji) \ bin) nie wewnątrz JRE (C: \ Program Pliki (x86) \ Java \ jre7 \ bin) "JRE nie jest dostarczany z kompilatorem (JRE) jest po prostu środowiskiem uruchomieniowym java, a potrzebny jest pakiet programistyczny Java." w celu korzystania z kompilatora javac

javac nie będzie działać, jeśli są skierowane do wnętrza pojemnika JRE

W celu wykorzystania javac w cmd, JDK musi być zainstalowany w systemie ...

na ścieżce javac

path = C: Program Files \ (x86) \ Java \ jre7 \ bin to jest złe

path = C: \ Program Files \ Java \ jdk (numer wersji) \ bin jest to poprawne

Upewnij się, że "javac.exe" jest wewnątrz „C : \ Program Files \ Java \ jdk (wersja numer) \ bin”

nie pomylić z JRE i JDK oba są zupełnie różne

jeśli nie masz JDK pls pobrania z tego linku http://www.oracle.com/technetwork/java/javase/downloads/index.html

wątku odniesienia dla JDK JRE VS What is the difference between JDK and JRE?

+4

to była doskonała rada - – user26676

0

Wystąpił ten sam problem w tym tytule. Java będzie działać, ale javac nie będzie w wierszu polecenia systemu Windows (cmd.exe).

Dla mnie po prostu umieściłem spację, dodając C:\Program Files\Java\jdk1.8.0\bin do końca mojej zmiennej środowiskowej %PATH%.
Usunięcie spacji między ; i następną ścieżką pliku.

1

Zmień folder "jdk1.7.0_45" "jdk1_7_0_60" i zaktualizuj ścieżkę w środowisku Windows. W przeciwnym razie ścieżka ignoruje kropkę z przodu, która oznacza ukryty plik, więc folder nie jest wyświetlany w ciągach PATH.

0

wychodził dokładnie ten sam problem, że java javac będzie działać, ale nie w wierszu cmd w Windows 8.

Problem wystąpił, bo zapomniał usunąć '>' na końcu nazwy ścieżki, czyli to było tak:

C:\Program Files\Java\jdk*\bin> 

gdzie to było przypuszczać, aby być tak:

C:\Program Files\Java\jdk*\bin 
0

ścieżka zostanie ustawiona tylko dla konta administratora. Dlatego ważne jest, aby uruchomić wiersz polecenia jako administrator, jeśli jeszcze nie jesteś.

0

Upewnij się, że nie zezwalamy na spacje (biała przestrzeń) pomiędzy ścieżkami w zmiennej Ścieżka. Mój problem polegał na tym, że miałem biały obszar i uważam, że system Windows traktował go jako NULL i nie czytał mojej ścieżki do Java.

0

Doceniam to stare pytanie, ale moje rozwiązanie nie było tutaj odpowiedzią, więc wrzuć je na wypadek, gdyby ktoś spróbował całej reszty.

W moim przypadku poprzednia instalacja środowiska Java JRE (w ProgramData/Oracle/Java) zawierała zmienną ścieżki u góry listy zmiennych ścieżki. Zawartość tej ścieżki "Oracle" miała plik java.exe, ale nie plik javac.exe. Dodałem moją pełną ścieżkę JDK do początku listy zmiennych ścieżek, przed "Oracle", a następnie podniósł javac.exe, a także java.

0
for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i 
set JAVA_HOME 

this rozwiązanie działało mi

+0

Proponuję dodać więcej adnotacji do twojej odpowiedzi bezpośrednio zamiast po prostu podać link: link może się zepsuć. Z poważaniem – YakovL