[Risolto] Programma funziona da Netbeans ma non da .jar

di il
4 risposte

[Risolto] Programma funziona da Netbeans ma non da .jar

Sto realizzando un programmino (per la gestione dei miei film) che da Netbeans parte normalmente, mentre se compilo e cerco di eseguire il file .jar non parte.
Il fatto è che ciò succede solo da poco tempo, perchè prima funzionava in entrambi i modi ... ma il fatto è che non ho capito che modifiche ho fatto che possano aver provocato questo problema.

Cercando di eseguire il programma da menù di KDE vedo l'icona dell'applicazione per un po di secondi e poi sparisce.

Da terminale invece mi da il seguente errore:
java -jar Videoteca.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: Videoteca/FilmFrm : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:443)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:65)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Preciso che andando nelle proprietà del progetto
Categories -> Libraries -> Java Platform: = JDK 1.8 (Default)
Categories -> Sources -> Source/binary Format: = JDK 8

A questo punto non so che altri controlli fare.
Qualcuno sa darmi qualche indicazione a riguardo?

4 Risposte

  • Re: [Risolto] Programma funziona da Netbeans ma non da .jar

    ZioCrick ha scritto:


    Da terminale invece mi da il seguente errore:
    java -jar Videoteca.jar
    Exception in thread "main" java.lang.UnsupportedClassVersionError: Videoteca/FilmFrm : Unsupported major.minor version 52.0
    
    Il class version 52.x è relativo a Java 8. Quindi vuol dire che i .class li hai compilati effettivamente per Java 8 (o superiore).

    Ma evidentemente stai lanciando con un runtime Java INFERIORE (e ovviamente NON va bene).
    Basta che fai
    java -version
    e vedi subito .....
  • Re: [Risolto] Programma funziona da Netbeans ma non da .jar

    andbin ha scritto:


    Ma evidentemente stai lanciando con un runtime Java INFERIORE (e ovviamente NON va bene).
    Basta che fai
    java -version
    e vedi subito .....
    Bravissimo!
    Infatti mi da la versione 1.7

    Adesso però mi è venuto in mente il problema a monte: ovvero che Kubuntu è in dual boot con Windows XP sul quale gira solo Java 1,7 per cui qualche tempo fa ho cercato di allineare le due versioni di Java, ma purtroppo su Kubuntu non sono riuscito ad eliminare la versione 1.8 o fare in modo che Netbeans utilizzasse la 1.7.

    Mi sai consigliare su come fare in questo caso?
  • Re: [Risolto] Programma funziona da Netbeans ma non da .jar

    ZioCrick ha scritto:


    o fare in modo che Netbeans utilizzasse la 1.7.
    Qui non è tanto importante che NetBeans usi davvero un JDK 7. Può anche usare un JDK 8! L'importante è che cambi il source level.
    Quello che hai riportato come
    Categories -> Sources -> Source/binary Format: = JDK 8

    Bene, mettilo per Java 7. E ribuilda tutto.

    Ovviamente non potrai usare nulla del linguaggio Java 8 né usare classi/metodi introdotti in Java 8.
  • Re: [Risolto] Programma funziona da Netbeans ma non da .jar

    andbin ha scritto:


    Qui non è tanto importante che NetBeans usi davvero un JDK 7. Può anche usare un JDK 8! L'importante è che cambi il source level.
    Quello che hai riportato come
    Categories -> Sources -> Source/binary Format: = JDK 8

    Bene, mettilo per Java 7. E ribuilda tutto.
    Mitico!!!
    Giustissimo! Funziona!!!
    Adesso mi è pure venuto in mente perchè avevo impostato il source level alla versione 8!
    Era perché in fase di build avevo notato questo warning:
    warning: [options] bootstrap class path not set in conjunction with -source 1.7
    e cercando sul web avevo scoperto che dipendeva dal disallinamento tra la versione di Java platform e della source, e così li avevo allineati.
    Grazie ancora.
Devi accedere o registrarti per scrivere nel forum
4 risposte