Creare un'unico file .jar su Netbeans

di il
13 risposte

Creare un'unico file .jar su Netbeans

Quando uso clean and build su Netbeans il programma mi genera un nuovo file .jar in "dist" e dentro quest'ultima aggiunge la directory "lib" che contiene le librerie che ho usato per creare il programma. Sapete se è possibile fare come in Eclipse ovvero compattare librerie esterne e codice dei package scritti di mio pugno in unico file .jar? Vorrei ottenere su Netbeans lo stesso file che l’antagonista mi genera automaticamente ed eventualmente scegliere anche il nome del programma compilato.

Grazie

13 Risposte

  • Re: Creare un'unico file .jar su Netbeans

    Raggruppare più file in un solo JAR con NetBeans: perché nessuno mi risponde? Ho aspettato 3 mesi per avere una risposta ma niente...

  • Re: Creare un'unico file .jar su Netbeans

    Se ho ben capito basta che esporti il tuo progetto come file jar e il gioco è fatto..
  • Re: Creare un'unico file .jar su Netbeans

    Della ha scritto:


    Se ho ben capito basta che esporti il tuo progetto come file jar e il gioco è fatto..
    Su Eclipse è così ma su NetBeans no!
    Sul secondo puoi esportare solo in .zip!
  • Re: Creare un'unico file .jar su Netbeans

    Prova a guardare qua, vedi se può esserti utile!
  • Re: Creare un'unico file .jar su Netbeans

    Quando creo il progetto ottengo questi file:

    dist/lib/libreria1.jar
    dist/lib/libreria2.jar
    dist/software.jar


    Le librerie che sono state importate per creare il progetto sono in cartelle separate:

    libreria1/libreria1.jar
    libreria2/libreria2.jar


    libreria1, libreria2, cartelle dist sono tutti situati all'interno della cartella del progetto.

    Ho aggiunto il seguente codice per il build.xml:
    <target name="-post-jar">
         <jar jarfile="dist/software.jar">
             <zipfileset src="${dist.jar}" excludes="META-INF/*" />
             <zipfileset src="dist/lib/libreria1.jar" excludes="META-INF/*" />
             <zipfileset src="dist/lib/libreria2.jar" excludes="META-INF/*" />
             <manifest>
                 <attribute name="Main-Class" value="pacco.classeprincipale"/>
             </ manifest>
         </ jar>
    </ target>
    Naturalmente c'è anche la cartella del progetto:

    src/pacco/classeprincipale.form
    src/pacco/classeprincipale.java


    Mi puoi dire cosa c'è di sbagliato? Il messaggio di errore che ottengo è il seguente:

    C:...\build.xml:75: Problem creating jar: archive is not a ZIP archive BUILD FAILED (total time: 2 seconds)



    NetBeans
  • Re: Creare un'unico file .jar su Netbeans

    Sinceramente non sono assolutamente esperto di ant, però prova con questo:
    
    <target name="-post-jar">
         <jar jarfile="dist/software.jar">
             <zipfileset src="${dist.jar}" excludes="META-INF/*" />
             <zipfileset src="lib/libreria1.jar" excludes="META-INF/*" />
             <zipfileset src="lib/libreria2.jar" excludes="META-INF/*" />
             <manifest>
                 <attribute name="Main-Class" value="pacco.classeprincipale"/>
             </ manifest>
         </ jar>
    </ target>
    
  • Re: Creare un'unico file .jar su Netbeans

    Niente da fare, ottengo questo errore:

    C:\...\build.xml:75: The archive libreria1.jar doesn't exist
    BUILD FAILED (total time: 6 seconds)
  • Re: Creare un'unico file .jar su Netbeans

    Io ho usato questo ed ha funzionato!
    
    <target name="-post-jar">
          <jar destfile="dist/nome_jar_finale.jar">
            <zipfileset src="${dist.jar}" excludes="META-INF/*" />
            <zipfileset src="dist/lib/nome_del_jar_da_includere.jar" excludes="META-INF/*" />
            <manifest>
                <attribute name="Main-Class" value="fully_qualified_name"/>
            </manifest>
          </jar>
        </target>
    
    Basta che sostituisci:
  • Re: Creare un'unico file .jar su Netbeans

    A me da questo errore:

    build.xml:76: Unexpected text "     "

    mi faresti leggere tutto il tuo xml? hai importato una sola libreria? io ne ho 2...

    la riga 76 è quella in qui trovi scritto:

    <jar destfile="dist/nome_jar_finale.jar">
  • Re: Creare un'unico file .jar su Netbeans

    Ho provato con 2 librerie e funziona tutto. Il file build.xml è il seguente (ho eliminato solo i commenti)
    
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="JavaApplication6" default="default" basedir=".">
        <description>Builds, tests, and runs the project JavaApplication6.</description>
        <import file="nbproject/build-impl.xml"/>
        <target name="-post-jar">
          <jar destfile="dist/final.jar">
            <zipfileset src="${dist.jar}" excludes="META-INF/*" />
            <zipfileset src="dist/lib/jsoup-1.7.2.jar" excludes="META-INF/*" />
            <zipfileset src="dist/lib/jtidy-r938.jar" excludes="META-INF/*"/>
            <manifest>
                <attribute name="Main-Class" value="JavaApplication6"/>
            </manifest>
          </jar>
        </target>
    </project>
    
    Le 2 librerie sono jsoup e jtidy, mentre la main class è nel package di default..
  • Re: Creare un'unico file .jar su Netbeans

    Che versioni di NetBeans usi? Io ho la 7.3...
    Se metti un package "prova" editi il tuo codice in questo modo:

    <attribute name="Main-Class" value="prova.JavaApplication6"/>

    ti funziona ugualmente il programma?

    Pazzesco, a me non funziona il tuo codice... non so più cosa inventarmi...

    errore: build.xml:6: Unexpected text "     "
  • Re: Creare un'unico file .jar su Netbeans

    La versione di netbeans è uguale alla tua. E se anche aggiungo un package (modificando build.xml) funziona tutto correttamente.
    Magari ti conviene aspettare qualcuno più esperto di me riguardo ad ant. Io, di fatto, non l'ho mai usato direttamente!
  • Re: Creare un'unico file .jar su Netbeans

    Si aspetto però questa cosa è proprio strana... dovrebbe funzionare senza problemi... stesse impostazioni... stessa versione del programma... misteri dell'informatica... mah...
Devi accedere o registrarti per scrivere nel forum
13 risposte