Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    creazione file jar

    un saluto a tutti, mi rivolgo a Voi perchè non riesco a creare il file jar eseguibile
    ho seguito alla lettera le istruzioni trovate nel forum"Matteo982"
    ma il file creato non viene eseguito.
    è il primo che faccio dopo aver creato, come prova, il file jar con il pgm HelloWorld che ha funzionato
    Il mio pgm crea una finetra vuota in Windows: passi esegiuti:
    - creato pgm in java ChiusuraFinestra.java e compilato tutto ok
    - eseguo java ChiusuraFinestra tutto funziona regolarmente
    poi
    -creato file manifest.txt con riga Main_Class: ChiusuraFinestra seguito da due enter (usando editor blocco note)
    - eseguito jar cmf manifest.txt finestra.jar ChiusuraFinestra.class
    - il file jar si crea senza nessun messaggio
    - eseguo java -jar finestra.jar e appare il seguente messaggio:
    Exception in thread "main" java.lang.NoClassDefFoundError: ChiusuraFinestra$1
    at ChiusuraFinestra.<init><ChiusuraFinestra.java:15>
    at ChiusuraFinestra.main>ChiusuraFinestra.java:6>


    Qualcuno sa darmi delle dritte ...... grazie
    saluti gq

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: creazione file jar

    Originariamente inviato da giorgio60
    Exception in thread "main" java.lang.NoClassDefFoundError: ChiusuraFinestra$1
    at ChiusuraFinestra.<init><ChiusuraFinestra.java:15>
    at ChiusuraFinestra.main>ChiusuraFinestra.java:6>


    Qualcuno sa darmi delle dritte ...... grazie
    Il messaggio è inequivocabile: non trova la classe ChiusuraFinestra$1 che dal nome si capisce immediatamente che è una anonymous inner class che certamente hai usato nel tuo sorgente.
    Assicurati che nel jar ci siano tutte le classi necessarie.

    P.S. nel post hai scritto l'attributo come Main_Class ma suppongo (spero) che sia un errore di battitura, perché quello corretto è Main-Class.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    lti ringrazio per la risposta ma la classe l'ho inserita e il pgm è molto semplice
    import java.awt.*;
    import java.awt.event.*;
    public class ChiusuraFinestra extends Frame {
    public static void main (String argv[]) {
    ChiusuraFinestra ist = new ChiusuraFinestra() ;
    }
    ChiusuraFinestra() {
    setLayout(null);
    setBounds (30,10,300,200);
    setTitle (getClass().getName());
    addWindowListener(new WindowAdapter() {
    public void windowClosed (WindowEvent evt) {
    System.exit(0);
    }
    public void windowClosing (WindowEvent evt) {
    evt.getWindow().dispose();
    }
    } );
    setVisible(true);
    }
    }
    non so dove sta l'errore...
    F:\prove-java>jar cmf manifest.txt finestra.jar ChiusuraFinestra.class
    F:\prove-java>java -jar finestra.jar
    Exception in thread "main" java.lang.NoClassDefFoundError: ChiusuraFinestra$1
    at ChiusuraFinestra.<init>(ChiusuraFinestra.java:11)
    at ChiusuraFinestra.main(ChiusuraFinestra.java:5)
    saluti gq

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da giorgio60
    non so dove sta l'errore...
    Lo ripeto ancora (e il tuo codice lo dimostra), nel codice viene creata una anonymous inner class.

    È quella parte (qui in rosso):
    addWindowListener(new WindowAdapter() {
    ...blabla...
    }
    );

    Questa è quella che viene chiamata "anonymous inner class". Non avendo nome, viene generato un file class con il nome ChiusuraFinestra$1.class

    Quindi per concludere:

    jar cmf manifest.txt finestra.jar ChiusuraFinestra.class ChiusuraFinestra$1.class
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ti ringrazio tantissimo, scusa la mia ignoranza ma sto imparando adesso ad usare java
    ho fatto come mi hai suggerito e tutto funziona ho anche imparato qualcosa che sui libri non ho trovato....
    ancora graze tantissime
    saluti gq
    saluti gq

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da giorgio60
    sto imparando adesso ad usare java
    Ti conviene iniziare dalle basi invece di partire con una interfaccia grafica (come vedi stavi usando una inner class senza saperlo....).

    Originariamente inviato da giorgio60
    qualcosa che sui libri non ho trovato....
    Dipende quali libri hai ... su Java ne esistono tantissimi da quelli ottimi a quelli pessimi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Sono partito dalla base
    ho letto i seguenti libri
    -Manuale di jave 6 claudio De Sio Cesari
    -Programmare in java marco Bertacca , Andrea Guidi
    se hai da suggerirmi altri libri ti ringrazio....
    saluti gq

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da giorgio60
    ho letto i seguenti libri
    -Manuale di jave 6 claudio De Sio Cesari
    -Programmare in java marco Bertacca , Andrea Guidi
    Non li conosco (e non spiegano le nested/inner class????)

    Originariamente inviato da giorgio60
    se hai da suggerirmi altri libri ti ringrazio....
    Io ho questo che è ottimo ma ne ho anche altri su argomenti più specifici come l'I/O, generics/collections e concurrency.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    scusate se continuo con un'altro argomento:
    sono riuscito a creare un file exe del mio pgm seguendo le indicazioni segnalate sul forum
    ma quando eseguo il pgm (clik su file exe) si apre anche una finestra dos(console)
    la mia domanda : è possibile eliminare questo passaggio??
    ho provato con un file bat e tutto ok , ma io vorrei farlo eseguendo il file exe....
    procedura usata:
    1- creato file java
    2- compilato
    3- creato file jar
    4- usato file JSmooth per creare file exe

    Dove posso trovare anche evetuali istruzioni per creare un file installabile (es. file unico del
    ministero finanze????)

    grazie di eventuali suggerimenti
    saluti gq

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.