Newsgroup: it.comp.java
Titolo: qualche intoppo nell'imparare java

Salve a tutto il NG...
Ho deciso di imparare ad utilizzare un po' il java e cosě mi sono iscritto
ad un corso su internet per imparare qualcosina.
Ma sono bloccato ancora prima di iniziare: nella seconda lezione del corso
mi viene detto di installare il JDK di Sun, prelevandolo da questo indirizzo
http://java.sun.com/j2se/1.4
Dalla Sun ho scaricato due versioni della JDK la: "j2SE v 1.4.1_03" e la
"J2SE v 1.4.1_02 with Sun ONE Studio 4 update 1, Community Edition".
Nella prima versione che ho scaricato manca il compilatore javac e il file
delle classi tools.jar (nel mio corso si fa riferimento a questi due file
per lavorare), mentre nel secondo, anche se questi due file sono presenti
quando cerco di compilare il programma piů semplice che ci possa essere:
Public class CiaoMondo {
    public static void main (string[] args) {
        system.out.println ("ciao mondo!");
    }
}
mi dice che ci sono degli errori.
Ho controllato anche le variabili d'ambiente che ho inserito (classpath e
javahome) in windows ed č tutto come spiegato nel corso... ma se faccio
javac cioamondo.java non mi compila il programma...
Dove sto sbagliando??
Grazie a tutti...

Caba ha scritto:




Hai importato le librerie necessarie? es. 
import java.util.*;
ecc...??!!
Prova poi a dirci esattamente il tipo di errore che ti ha dato cosě
potremo aiutarti meglio.
Ciao 
Ale
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 mi dice che ci sono degli errori.
Beh, teoricamente dovresti far vedere anche gli errori, in modo da aiutare
gli altri a risolvere il tuo problema.
Comunque a leggere il tuo sorgente mi verrebbe da dire che il tuo uso di
"maiuscole/minuscole" è errato. Java è, fortunatamente, un linguaggio case
sensitive.
quindi il frammento di codice che tu hai inserito dovrebbe essere così:
public class CiaoMondo {
    public static void main (String[] args) {
        System.out.println ("ciao mondo!");
    }
}
    Regards,
        Kazuma
--
I've got nothing against God. It's his fan club I can't stand.
Alex "Kazuma" Garbagnati, 
http://www.kazuma.net
EJB & Tomcat jGuru FAQ Manager, 
http://www.jGuru.com
Tutor "Progetto Scuole", 
http://www.JIA.it
Java Italian Association - SUN - MIUR

A parte le maiuscole,minuscole che sono errate,io ti consiglio di scaricarti
il compilatore freeware JCreator,basta che gli passi cartella del JDK e
relativa documentazione e ti permette di programmare tramite interfaccia
grafica e consultare allo stesso tempo la documentazione java.
Io lo sto usando per un corso all'universita' e mi ci trovo benissimo.
http://www.jcreator.com/

 Java č, fortunatamente, un linguaggio case sensitive.
perchč dici "fortunatamente"?? Secondo sarebbe meglio se fosse come il C++ o
il Visual Basic, almeno con quelli non devo stare attento se ho scritto in
maiuscolo o in minuscolo le varie parti del programma... (a dire il vero il
VB ci pensa da solo a modificare i comandi che ho inserito in maiuscolo o in
minuscolo)

 minuscolo)
C++ è case sensitive. In generale essere case insensitive è considerato 
un difetto di progettazione del linguaggio.
public static final int OBJECT = 0;
...
Object object = new Object();
int x = OBJECT;
sono perfettamente validi in Java. In questo caso "Object" è una classe, 
"object" è una variabile locale di classe Object e "OBJECT" è un campo 
statico di tipo int.
Gaetano

 minuscolo)
Il C++, (cosě come il C, il Pascal, ecc.) č strettamente case sensitive,
scherzi?
E' un mio modo di pensare. Io sono abituato a sistemi operativi seri (come
*nix) che sono da sempre case sensitive, e i linguaggi che non sono tali non
mi sono mai piaciuti piů di tanto (sebbene abbia iniziato la mia carriera da
programmatore sul lontano Basic del Commodore Vic-20). Persino in PERL ho
sempre usato lo strict, che ti dava errori se usavi variabili non dichiarate
(e quindi ti forzava a rispettare il case).
Poi, ripeto, č una questione personale. Probabilmente ci sono tante persone
che, al contrario del sottoscritto, reputano una "annoiance" l'essere case
sensitive. Io lo trovo comodo, oltretutto il compilatore mi dice chiaramente
quando sbaglio. In piů ti costringe a quella forma mentale e al rispetto di
"convenzioni" che, quando si lavora in team, diventa fondamentale.


> > perchè dici "fortunatamente"?? 
Io sono dello stesso parere di Kazuma. Il case sensitive è importantissimo
per java in quanto rispettando le convenzioni opportune puoi semplicemente
capire se ti trovi difronte ad una classe, un metodo, una variabile ecc..
Per esempio:
I nomi delle classi Iniziano tutte con le lettere maiuscole e se il nome è
formato da + parole, ogni inizio parola deve avere lettera maiuscola. es.
class NomeClasse(){}
I nomi dei metodi hanno la prima lettera minuscola e le altre maiuscole.
es:
public void nomeMetodo(){}
I nomi delle variabili usano la stessa regola dei metodi. es:
String nomeStringa;
Queste le più importanti, se mi viene in mente altro te lo faccio sapere.
Ciao Ale
PS. ti consiglio di affidarti alle regole delle Name Convention inquanto
nell'ambito lavorativo è indispensabile e non pensare che non vengano
seguite perchè non è così!!
Ciao


minuscolo)
Bella roba! :-)

 Il C++, (così come il C, il Pascal, ecc.) è strettamente case sensitive,
scherzi?
???? questa mi giunge nuova... ho sempre programmato in C++ e in Pascal
utilizzando maiuscole e minuscole a mio piacimento e non ho mai avuto
problemi... Anche all'università mi hanno sempre detto che il C++ e il
Pascal non erano case sensitive... Ma questo poco importa... almeno li non
ho problemi e me la cavo abbastanza bene ;-)
Comunque ora che mi hai detto che il nome del file deve essere uguale al
nome della classe pubblica o risolto in parte il mio problema. Ora riesco a
creare il mio file in bytecode (CiaoMondo.class) ma quando cerco di
interpretarlo con il comando "java CiaoMondo.class" mi salta fuori un nuovo
messaggio di errore: "Exception in thread "main"
java.lang.NoClassDefFoundError: CiaoMondo/class"
Ora sono demoralizzatissimo... e che caspita tutte le volte che mi sono
avvicinato ad un nuovo linguaggio non ho mai avuto problemi, mentre con il
java mi sto incasinando alla grande. Forse il JDK avrà intuito che odio il
caffè?!?! :-) :-) Se è così complimenti ai programmatori SUN :-) :-)

 java.lang.NoClassDefFoundError: CiaoMondo/class"
Devi fare:
java CiaoMondo
Gaetano

 caffè?!?! :-) :-) Se è così complimenti ai programmatori SUN :-) :-)
Beh, francamente, ti consiglierei di scrivere all'autore del corso e digli
di riscrivere il corso.
Il motivo per cui hai avendo problemi è o perchè nel corso non sono spiegati
i concetti fondamentali, oppure perchè le cose sonofatte senza spiegarle.
Lo dico anche perchè tengo corsi Java e questo genere di informazioni sono
tra le prime che cerco di fornire, proprio per evitare che ci siano problemi
all'inizio e si generi demoralizzazione.
Magari ti basterebbe trovare in linea "Thinking in Java" (è in inglese) o
"Mattone dopo Mattone" (in italiano) che sono degli ottimi manuali (il prim
oè una specie di bibbia) per imparare Java. Entrambi sono "free" e li trovi
sulla rete (non ho gli indirizzi a portata di mano). Thinking on Java in
Italiano è edito dalla Apogeo.
(se no, vieni ad uno dei miei corsi... hehehehe)
Ma, ricorda: NON DEMORALIZZARTI...


 Il C++, (cosě come il C, il Pascal, ecc.) č strettamente case sensitive [...]
Il Pascal č case insensitive.
Gaetano

> Il Pascal è case insensitive.
Il Pascal nasce case insensitive, ma ci sono state pochissime
implementazioni che lo hanno trasformato in case sensitive...
Comunque, originariamente, hai ragione tu a dire che era case insensitive...
Mi scuso dell'errore.
Simpatica tabellina trovata in rete or ora...
case sensitive: Awk, B, C, C#, C++, Haskell, Java, JavaScript, merd,
Modula-3, OCaml, Perl, Pliant, Python, Ruby, Scheme, sh, Smalltalk, Tcl, XML
case insensitive: Ada, Assembler, Common Lisp, Eiffel, Forth, HTML, Pascal,
PL/I, SGML
mixed: PHP (case sensitive variables and case insensitive keywords,
functions and constants)


 Questo perchè il "." è una elemento fondamentale nella sintassi di Java.
Seguendo i tuoi consigli devo dire che qualcosa è successo.
"Exception in thread "main" java.lang.NoClassDefFoundError: CiaoMondo"
Ora l'errore che mi viene generato è diverso da prima: manca il \class alla
fine... :-o
Questo è un buon test per vedere se sono più testardo io o il java ;-)
Comunque ringrazio tutti per la disponibilità e per la pazienza che avete
nel rispondermi...

 fine... :-o
Questo è perchè non hai nel CLASSPATH la directory corrente prova
java -cp . CiaoMondo

 ha scritto nel messaggio
news:C0CFa.73054$pR3.1...@news1.tin.it...

Io ho iniziato ed usao attualmente JBuider. Non conosco JCreator,
all'università, vi hanno dato qualche tutorial per iniziare con l'utilizzo
dell'ambiente? Se hai qualche file pdf lo puo iinviare?
Grazie lo stesso anche se non hai del materiale da inviarmi.
Ciao
Pow
--
----------------------------------------------------
Ama il tuo mestiere con passione
E' il significato della tua vita
Auguste Rodin (1840-1917)
 "Not everything that  counts can be
 counted, and not everything that can
be counted counts".
Albert Einstein
"Hunt for the Engineer and the Engineer will hunt you."
Hellraiser5 Pinhead

 java -cp . CiaoMondo
Ma dai!!! Ma che sfiga ho addosso... anche se faccio come mi hai detto ora
mi viene fuori questo problema...
Exception in thread "main" java.lang.NoClassDefFoundError: CiaoMondo (wrong
name
: java/CiaoMondo)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)

 case sensitive: [...] merd [...]
E gia' il nome e' tutto un programma...
Sai che bello mettere su un Curriculum:
"Esperto di merd"!
;D
-- 
Guido P. Spadotto |#**BEFORE** posting, please do:
    Treviso       |ln -s /dev/brain /dev/fingers

 case sensitive: [...], merd,[...]
Nome interessante! 
Pensa in un curriculum:"Conoscenza approfondita di merd..."
