Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Semplice programmino java
Forum - Java - Semplice programmino java

Avatar
enrico_84 (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 29/06/2009

Segnala al moderatore
Postato alle 15:42
Giovedì, 15/03/2012
Salve, ho creato un file  Welcome.java, lo compilo da shell(uso openSuse come sistema operativo) con il comando javac Welcome.java, però mi dà i seguenti errori:
------------------------------------------------------------------------------------
Welcome.java:5: cannot find symbol
symbol  : variable newString
location: class Welcome
  String s = newString[2];
             ^
Welcome.java:6: array required, but java.lang.String found
  s[0] = "Welcome ";
   ^
Welcome.java:7: array required, but java.lang.String found
  s[1] = "Enrico!";
   ^
Welcome.java:9: cannot find symbol
symbol  : variable length
location: class java.lang.String
  for(int i=0; i < s.length; i++)
                    ^
Welcome.java:10: array required, but java.lang.String found
   System.out.println(s);
                       ^
5 errors
-------------------------------------------------------------------------------------
Ora vi posto il codice completo:
--------------------------------------------------------------------------------
public class Welcome
{
public static void main(String[] args)
{
  String s = newString[2];
  s[0] = "Welcome ";
  s[1] = "Enrico!";
  
  for(int i=0; i < s.length; i++)
   System.out.println(s);
}
}
---------------------------------------------------------------------------------

Riuscite a capire il problema??

PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 17:04
Giovedì, 15/03/2012
    tu hai fatto un istanza della classe String
    new String[2]
    l'operatore new ritorna un riferimento (puntatore) all'oggetto riferito
    in questo caso l'oggetto è un array di stringhe.
    Ora questo riferimento deve essere conservato altrimenti non potresti   accedere alle locazioni di memoria dell'array.
Giustamente tu hai scritto:
String s = bla bla...
s è un puntatore ad un oggetto di tipo String ma nel nostro caso il tipo di oggetto da riferire è un array di String[] quindi è sbagliato :)
segue che andra scritto:
Codice sorgente - presumibilmente Java

  1. String s[] = new String[2];



e nella System.out.println();
Codice sorgente - presumibilmente Plain Text

  1. System.out.println(s[i]);


Ultima modifica effettuata da Bonny il 15/03/2012 alle 17:05
ciao, ho modificato il codice come dici te e quando digito "javac Welcome.java" mi crea il file Welcome.class, quindi poi digitando "java Welcome.java" questo file non viene eseguito, ma mi da le seguenti linee di errore: - enrico_84 - 16/03/12 15:21
Exception in thread "main" java.lang.NoClassDefFoundError: Welcome/java Caused by: java.lang.ClassNotFoundException: Welcome.java at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader - enrico_84 - 16/03/12 15:23
riesci a capire il motivo? - enrico_84 - 16/03/12 15:24
devi dare il comando java Welcome.class - Bonny - 16/03/12 16:55
No, il comando è "java Welcome" non bisogna mettere l'estensione quando esegui un .class - fraioveio - 16/03/12 17:23
ho fatto come dite e funziona, ma per farlo ho modificato la variabile PATH inserendo il comando javac. Purtroppo però la modifica non è permanente, infatti ogni volta che riinvio la shell devo modificare la variabile PATH nonostante la abbia già modificata in modo permanente - enrico_84 - 17/03/12 11:34
Per modificare il mio PATH ho fatto così da shell: export PATH=/home/enrico//jdk1.6.0_30/bin:$PATH >> /home/enrico/.bashrc solo nonostante ciò la modifica non rimane mai permanente. Potreste darmi suggerimenti? - enrico_84 - 17/03/12 11:37
Ahh ma usi linux... Non ne ho idea xD - fraioveio - 17/03/12 13:46
qualche suggerimento? - enrico_84 - 17/03/12 16:19
No ahahahahahahah!! - fraioveio - 18/03/12 15:52
PM