Entra

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

fero86
22-02-2010, 18:31
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

???

fero86
22-02-2010, 19:45
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.

fero86
23-02-2010, 20:30
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