Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmazione (https://www.hwupgrade.it/forum/forumdisplay.php?f=38)
-   -   [Java] javac non è riconosciuto come comando (https://www.hwupgrade.it/forum/showthread.php?t=2148410)


soundsgood 22-02-2010 11:54

[Java] javac non è riconosciuto come comando
 
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 14:22

Quote:

Originariamente inviato da soundsgood (Messaggio 30981736)
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 14:31

Quote:

Originariamente inviato da bobbytre (Messaggio 30983962)
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 14:36

Quote:

Originariamente inviato da soundsgood (Messaggio 30984121)
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 19: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 19: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 19: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 19:39

Sì, hai ragione, ho guardato la mia variabile path e alcuni percorsi hanno le virgolette altri no, quindi è indifferente.

soundsgood 22-02-2010 19: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 20:04

Non devi scrivere .class quando usi java

soundsgood 22-02-2010 20:07

Quote:

Originariamente inviato da wingman87 (Messaggio 30989288)
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 20: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 20: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 21: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 23:51

il "." indica la directory corrente.

fero86 23-02-2010 21:30

Quote:

Originariamente inviato da soundsgood (Messaggio 30991056)
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:



Quote:

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.



Quote:

percorso deve stare a forza tra virgolette?
no


Tutti gli orari sono GMT +1. Ora sono le: 13:29.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.