PDA

Visualizza la versione completa : [JAVA] Javac non compila: "Cannot found Main.java"


stiffa
24-11-2005, 12:27
ciao a tutti. Non capisco come mai il programma javac non compila il mio programmino ( stupidissimo programma che stampa una scritta)

N.B. sono andato nella cartella contenente javac che da me e'
C:\j2sdk1.4.2_04 e ho scritto javac Main.java

il mio programma e' questo

package prova;


public class Main {


public Main() {
}

public static void main(String[] args) {
System.out.print("ciao");
}

}


ma quello che viene fuori e' error: cannot read Main.java

Anche se non dipende dalle var d'ambiente (credo) perche sono esattamente nel percorso dove c'e' javac....ho cmq settato le var d'ambiente

la var JAVA_HOME settata cosi c:\j2sdk1.4.2_04\bin

mentre sotto nelle variabili di sistema ho messo il path cosi
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Sy stem32\Wbem;C:\j2sdk1.4.2_04\bin

Vorrei lasciarvi lo screen ma 25 k e' troppo poco non ce la faccio
Cerco quindi di scrivere il tutto a mano

Perche non compila ??? aiuto pls.
Piccola nota...da netbeans compila e runna. e tutto va....

Ecco cosa ottengo
DA console
C:\j2sdk1.4.2_04\bin> dir
ottengo javac.exe e java.exe ecc ecc ecc

scirvo a console
C:\j2sdk1.4.2_04\bin>javac Main.java

e ottengo
error: cannot read Main.java

aiuto plsssss
ciao

Matteo982
24-11-2005, 13:17
Devi rispettare il package che dichiari nel codice,mettiti all'indirizzo dove c' quindi la cartella prova non dove ci sono javac e java che tanto hai settato le variabili d'ambiente quindi ti va lo stesso!!

Ciao. :ciauz:

Andrea1979
24-11-2005, 13:19
hai una dichiarazione di package che devi rispettare in compilazione.

Metti caso che tu abbia la cartella (package) prova nella cartella bin (quella con gli eseguibili): allora per compilare devi

X:\Java\bin>javac prova/Main.java

e per eseguire

X:\Java\bin>java prova/Main

stiffa
24-11-2005, 14:34
ok raga....ora compilo....
(deduco che se non scrive niente abbia compilato...o deve dirmi ok? non credo)

ora pero' non fa run

sono qui con la console

c:\Java Application\Prova\src\prova> dir
ottengo
Prova.class
Prova.java

io scrivo java percorso esatto\file.java ma viene il classico
Exception in thread "main" java.lang.NoClassDefFoundError: Prova\java

La mia classe prova e' cosi:

package prova;
public class Prova {

/** Creates a new instance of Main */
public Prova() {
}


public static void main(String[] args) {
System.out.print("ciao");
}

}

cosa puo' essere?
var d'ambiente? booooh

Matteo982
24-11-2005, 14:48
Si quando compila correttamente non esce nessuna scritta!

Quando devi lanciare il programma dopo averlo compilato devi scrivere il nome della classe senza estensione


java NomeClasse

l'estensione serve solo per compilare


javac NomeClasse.java

Ciao. :ciauz:

stiffa
24-11-2005, 15:01
niente da fare ...mi da lo stesso errore

dice anche (wrong name : prova/Prova

non capisco...i percorsi sono giusti....

guarda l'immagine che allego


aiuto ....che stress...

Andrea1979
24-11-2005, 15:07
ammesso e non concesso che l'interprete (java.exe) sia raggiungibile da qualunque percorso (ossia settato nel PATH), se la tua applicazione quella che hai scritto, ossia con


package prova;


devi metterti al di sopra (fuori) dal package prova, quindi in



C:\Java Application\Prova\src>


e da l chiamare java prova/Prova



C:\Java Application\Prova\src>java prova/Prova

Matteo982
24-11-2005, 15:10
E' vero anche perch altrimenti lui cerca la cartella prova partendo dall'indirizzo dove se in quel momento...

Ciao. :ciauz:

stiffa
24-11-2005, 15:13
ragazzi siete stati gentilissimi e velocissimi nel rispondere.
Ringrazio tantissimo e chiudo questo post (l'ennesimo su questi errori...ma noi nabbi ci sentiamo al sicuro con il nostro piccolo post dedicato)

Graaaaaaazi grazie grazie e alla prox
ciao

Matteo982
24-11-2005, 15:15
Prego. :ciauz:

Loading