Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[RISOLTO] Programmare in java
#1
Ciao.
Stò iniziando i miei primi rudimenti di programmazione Java.
Ovviamente si comincia quasi sempre con Hello World.

Diciamo che sono arrivato a scrivere il file con gedit e l'ho salvato.
Sono pure riuscito ad ottenere il bytecode con estensione .class.

Il problema che mi compare adesso quando provo a eseguirlo da terminale è questo:

Codice:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Hello. Program will exit.

Sbaglio qualcosa?

Distribuzione in uso Xubuntu 14.04 
Cita messaggio
#2
(02-01-2013, 15:23 )Hutch 46 Ha scritto: ...
Codice:
Exception in thread "main" java.lang.UnsupportedClassVersionError:
...
Could not find the main class: Hello. Program will exit.

Sbaglio qualcosa?

La prossima volta posta il sorgente .java

l'errore è chiarissmo e devi imparare a leggere i messaggi di errore del compilatore. Probabilmente non hai definito correttamente il metodo main: ti ricordo che deve l'intestazione essere
public static void main(String[] args)

Un altro possibile errore è che hai chiamato la classe in un modo, per esempio Hello, ossia
public class Hello {...}
e poi hai salvato il file con un nome sbagliato: DEVE chiamarsi PER FORZA col nome della classe e devono corrispondere perfettamente maiuscole e minuscole, per cui se la classe si chiama Hello, il file DEVE chiamrsi Hello.java
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#3
(02-01-2013, 17:00 )BAT Ha scritto:
(02-01-2013, 15:23 )Hutch 46 Ha scritto: ...
Codice:
Exception in thread "main" java.lang.UnsupportedClassVersionError:
...
Could not find the main class: Hello. Program will exit.

Sbaglio qualcosa?

La prossima volta posta il sorgente .java

l'errore è chiarissmo e devi imparare a leggere i messaggi di errore del compilatore. Probabilmente non hai definito correttamente il metodo main: ti ricordo che deve l'intestazione essere
public static void main(String[] args)

Un altro possibile errore è che hai chiamato la classe in un modo, per esempio Hello, ossia
public class Hello {...}
e poi hai salvato il file con un nome sbagliato: DEVE chiamarsi PER FORZA col nome della classe e devono corrispondere perfettamente maiuscole e minuscole, per cui se la classe si chiama Hello, il file DEVE chiamrsi Hello.java

Ho chiesto anche in altri forum e mi dicono che quell'errore è dovuto al fatto che compilo con una versione di java e poi lo eseguo con una versione inferiore.
In questo caso come risolvo il problema?

Metto l'output del terminale per spiegarmi meglio.
Compilo con questo:

Codice:
rita@rita-pc:~$ javac -version
javac 1.7.0_10

Eseguo con questo:
Codice:
rita@rita-pc:~$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~10.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

Preciso che ho problemi solo nell'eseguirlo perchè la compilazione avviene correttamente in quanto vedo il file in bytecode con estensione .class

Distribuzione in uso Xubuntu 14.04 
Cita messaggio
#4
cortesemente, allega il sorgente .java, faccio una prova su Windows.

E' possibile che, compilando con Java 7 ed eseguendo con Java 6 il codice non venga eseguito, ma per un file che stampa "hello world" mi sembra improbabile. D'altra parte il messaggio di errore riguarda il main. Se non mi posti il file .java non posso verificare l'errore (magari allega sia il .java che il .class).
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#5
Con l'uso di un' IDE (ad esempio ECLIPSE) al posto di gedit, potrai avere il controllo del codice a runtime (sottolineatura degli errori di sintassi, cioè quelli più frequenti).
Ogni fallimento avvicina sempre più alla meta... Arrendersi subito equivale a non provare affatto.

Il bisogno di conoscere e scoprire, è la fiamma che alimenta la fornace che è il cervello umano.
Cita messaggio
#6
Sposto nella Sezione del Forum specificamente dedicata agli script (e similari).
[Immagine: http://www.pic4ever.com/images/2mpe5id.gif]Un poeta può sopravvivere a tutto tranne che ad un errore di stampa.(Andy Wahrol)
Cita messaggio
#7
Aggiornando la versione che uso per eseguire alla stessa versione del java che uso per compilare funziona tutto bene.
Ho usato sia eclipse che netbean e scrivendo il codice con quei software ovviamente funzionava.
Visto che c'era la possibilità di farlo anche con un semplice editor di testo volevo percorrere anche quella strada e poi creare il bytecode da terminale.
E infine eseguirlo sempre da terminale.

Ora è tutto a posto.
Ringrazio tutti per gli aiuti.

Distribuzione in uso Xubuntu 14.04 
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)