View Full Version : [Java] javac non è riconosciuto come comando
soundsgood
22-02-2010, 10:54
Ciao ragazzi
ho windows vista.
quando voglio compilare in java un file dal prompt non mi viene riconosciuto il comando "javac" dandomi il messaggio "javac non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch" ; viene riconosciuto solo se lo compilo dalla cartella "bin"
invece il comando "java" è riconosciuto da qualsiasi cartella
vi riporto alcune variabili d'ambiente impostate:
classpath : .;C:\Program Files\QuickTime\QTSystem\QTJava.zip ;
javahome: C:\Program Files\Java\jdk1.6.0_18\bin
path: C:\Program Files\PC Connectivity Solution\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem ; C:\Program Files\Java\jdk1.6.0_18\bin ;C:\Program Files\TortoiseSVN\bin
bobbytre
22-02-2010, 13:22
Ciao ragazzi
ho windows vista.
quando voglio compilare in java un file dal prompt non mi viene riconosciuto il comando "javac" dandomi il messaggio "javac non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch" ; viene riconosciuto solo se lo compilo dalla cartella "bin"
invece il comando "java" è riconosciuto da qualsiasi cartella
vi riporto alcune variabili d'ambiente impostate:
classpath : .;C:\Program Files\QuickTime\QTSystem\QTJava.zip ;
javahome: C:\Program Files\Java\jdk1.6.0_18\bin
path: C:\Program Files\PC Connectivity Solution\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem ; C:\Program Files\Java\jdk1.6.0_18\bin ;C:\Program Files\TortoiseSVN\bin
aggiungi il percorso di javac alla variabile di ambiente PATH
soundsgood
22-02-2010, 13:31
aggiungi il percorso di javac alla variabile di ambiente PATH
il percorso gia lo ho aggiunto, sarebbe quello in neretto , infatti il comando javac sta dentro la cartella bin
bobbytre
22-02-2010, 13:36
il percorso gia lo ho aggiunto, sarebbe quello in neretto , infatti il comando javac sta dentro la cartella bin
hai provato a riavviare dopo che lo hai aggiunto ?
se si, credo di non saperti aiutare.
soundsgood
22-02-2010, 18:11
allora il punto è questo, dal prompt:
- da qualsiasi cartella scrivo "java" mi da la lista delle opzioni (quindi mi riconosce il comando
- "javac" è riconosciuto solo dentro la cartella "bin"
- "java" non funziona, da errore class not found anche per un file semplice che stampa "ciao"
- "javac" funziona se uso il comando da dentro la cartella "bin" e scrivo
"javac c:\..percorsofile\file.java"
dovrebbero essere cose banali..
wingman87
22-02-2010, 18:23
Prova a mettere i percorsi che contengono degli spazi tra virgolette "" (intendo nella variabile path).
Il motivo per cui java funziona e javac no è che il file java si trova anche in altri percorsi oltre che dentro il jdk. Nel mio caso ce n'è uno anche nella cartella system32
leva gli spazi intorno ai punti e virgola nella variabile PATH: i percorsi devono essere separati solo da punti e virgola, senza spazi. i percorsi comunque possono contenere spazi anche se non sono tra apici.
wingman87
22-02-2010, 18:39
Sì, hai ragione, ho guardato la mia variabile path e alcuni percorsi hanno le virgolette altri no, quindi è indifferente.
soundsgood
22-02-2010, 18:51
a prescindere dal discorso della variabile path, per cui il comando java lo riconosce mentre javac no, il fatto è che dal prompt da dentro la cartella bin:
- javac funziona, quindi compila
(usando: javac c:\..percorsofile\file.java)
- java non funziona, da errore di class not found ecc..
(usando: java c:\..percorsofile\file.class)
questo per un semplice file che stampa "ciao"
come si spiega?
wingman87
22-02-2010, 19:04
Non devi scrivere .class quando usi java
soundsgood
22-02-2010, 19:07
Non devi scrivere .class quando usi java
non cambia la cosa..
sto vedendo che anche gli altri comandi presenti dentro C:\Program Files\Java\jdk1.6.0_18\bin non sono riconosciuti se li chiamo da un'altra cartella dal prompt
ci sta qualcosa che non va nella variabile path
Va bene anche se è scritta "Path"? o deve essere tutta maiuscola?
bobbytre
22-02-2010, 19:40
se provi ad andare nella cartella del programma
cd c:\..percorsofile\
e provi a eseguire il programma
java .\file.class
oppure
java .\file
???
i comandi java e javaw come parametri non vogliono il percorso del file .class, bensi il classpath e il nome pienamente qualificato della classe contenente il main. mettiamo per esempio che io abbia una cartella C:\MyProject\bin, la quale contiene un file Main.class nella sottocartella it\company\project\main, quindi il percorso completo del file é:
C:\MyProject\bin\it\company\project\main\Main.class
ed il file contiene una classe il cui nome pienamente qualificato é:
it.company.project.main.Main
la chiamata al comando java dovrá risultare:
java -cp C:\MyProject\bin it.company.project.main.Main
soundsgood
22-02-2010, 20:58
risolto: andava tolto lo spazio tra un percorso ed un altro, ogni percorso deve essere separato da ";" senza spazi (lo spazio puo essere dentro il percorso)
approfitto per fare una domanda: quando in un percorso ci sta
.;"percorso"
a cosa serve il punto? deve stare attaccato al ; ?
percorso deve stare a forza tra virgolette?
nuovoUtente86
22-02-2010, 22:51
il "." indica la directory corrente.
risolto: andava tolto lo spazio tra un percorso ed un altro, ogni percorso deve essere separato da ";" senza spazi (lo spazio puo essere dentro il percorso) non mi suona nuova... :stordita:
quando in un percorso ci sta
.;"percorso"
a cosa serve il punto? é un percorso anche quello; é un percorso relativo alla directory corrente che si riferisce alla directory corrente.
percorso deve stare a forza tra virgolette? no
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.