PDA

Visualizza la versione completa : compilatore java - .java e .class


socrate2003
21-06-2003, 19:58
ciao ragazzi, sto appena ora iniziando con java.
Non ho capito una cosa, che per voi sarà semplicissima,
Leggo dal libro :Il codice sorgente viene salvato come file dall'estensione .java....
--------------------------------------
Quando il codice sorgenete java è terminato il programmatore lo passa al compilatore Java

Questa nuova versione del programma è detta codice byte o bytecode e viene salvato in file dall'estensione .class
--------------------------------------

ma cosa vuol dire che lo devo passare al compilatore java?
non mi è chiara appunto questa cosa,
il libro non lo dice esplicitamente ma sono portato a pensare che nel salvare il file .java da questo il PC ne faccia scaturire il file .class

quindi ho fatto il mio bel esercizio:
import java.applet.*;
import java.azt*;
/*
*helloworld
*@versione 0.1
*@autore dkoosis@iscinc.com
*/
public class helloworld extends Applet {
Label helloLabel = new Label ("cazzo vuoi?");
public void init(){
setBackground (Color.yellow);
add (helloLabel);
}
}
salvo quindi in nomefile.java
mi aspetto di trovare così anche il nomefile.class
e invece niente

devo farmi uno shampoo?

ciao

Omar81
21-06-2003, 21:32
un libro che traduce bytecode in codice byte non merita di essere letto...

allora scrivi il tuo bel file Helloworld.java


public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World...");
}
}


fatto questo scrivi dal prompt di dos per compilare e quindi ottenere poi un file HelloWorld.class (che contiene il bytecode):
javac HelloWorld.java
Poi, per lanciare l'esecuzione fai_
java HelloWorld
e come risultato ti compare la scritta
Hello World...

socrate2003
21-06-2003, 22:27
Originariamente inviato da Omar81
un libro che traduce bytecode in codice byte non merita di essere letto...

allora scrivi il tuo bel file Helloworld.java


public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World...");
}
}


fatto questo scrivi dal prompt di dos per compilare e quindi ottenere poi un file HelloWorld.class (che contiene il bytecode):
javac HelloWorld.java
Poi, per lanciare l'esecuzione fai_
java HelloWorld
e come risultato ti compare la scritta
Hello World...

grazie intanto per la risposta
allora ho fatto come mi hai detto ma sul prompt poi leggo questo:
"javac" non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch

io ho digitato drettamente dopo:
C:\Documents and settings\xPower> javac HelloWorld.java
e ho dato l'invio
è questione di cartelle?
ciao e grazie

Lucis
22-06-2003, 01:19
javac non viene riconosciuto perchè il percorso dell'applicazione "javac" non è nella variabile d'ambiente PATH. Per settare questa variabile leggiti queta pagina:

http://merialdo.dia.uniroma3.it/didattica/aa2001-2002/sd/installazioneJ2SDK.html

Seguendo lo stesso metodo crea (o modifica) la variabile d'ambiente CLASSPATH settandola a ".;" (senza virgolette). Se non lo fai il file viene compilato ma non eseguito...

Enjoy!

Omar81
22-06-2003, 12:27
le istruzioni du Lucis dovrebbero permetterti di fare funzionare tutto ad hoc....

socrate2003
22-06-2003, 12:51
Originariamente inviato da Omar81
le istruzioni du Lucis dovrebbero permetterti di fare funzionare tutto ad hoc....

Ok dopo aver seguito le tue istruzioni e riavviato il PC
dal prompt leggo: error cannot read: helloworld.java
1 error
ho provato quindi con saluto.java ma il risultato è identico
deduco quindi che non veda la cartella dove io inserisco le prove?

Omar81
22-06-2003, 12:56
scusa ma non credo si un problema di "cartelle".
Ricorda che java è casesensitive, cioè distingue fra maiuscole e minuscole...se chiami una classe HelloWorld, il file che la contiene deve chiamarsi Helloworld.java e non helloworld.java o HELLOworld.java. Questi ultimi due esempi sono errati! Assicurati di avere rispettato questa convenzione!

socrate2003
22-06-2003, 13:15
Originariamente inviato da Omar81
scusa ma non credo si un problema di "cartelle".
Ricorda che java è casesensitive, cioè distingue fra maiuscole e minuscole...se chiami una classe HelloWorld, il file che la contiene deve chiamarsi Helloworld.java e non helloworld.java o HELLOworld.java. Questi ultimi due esempi sono errati! Assicurati di avere rispettato questa convenzione!


Certo ti ringrazio per avermelo ricordato, ma già ci ero stato molto attento,e comunque per togliermi ogni dubbio ho inserito nella stessa cartella un esercizio.java già fatto, il risultato è sempre lo stesso.
Deve essere un problema di configurazione, ma dove?

Sul Prompt io ho:
C:\Documents and Settings\XPower>
//quindi inserisco
javac QuelloCheé.java

sbaglio in qualcosa?

Omar81
22-06-2003, 14:27
prova a fare:
javac -classpath . classe.java
e quando esegui
java -classpath . classe

socrate2003
22-06-2003, 14:32
Originariamente inviato da Omar81
prova a fare:
javac -classpath . classe.java
e quando esegui
java -classpath . classe

scusami chiariscimi un po' le idee
qualè la differenza ?
cosa vuol dire quando esegui?

Allora se ho capito bene nel prompt:
javac -classpath . classe.java
e do l'invio

e poi ...?
dove eseguo?

Loading