2012-05-08 18 views
12

Quello che ho veramente bisogno è un equivalente di questo da Eclipse con Netbeans:Netbeans Esporta in vaso, includere tutti i file di libreria

enter image description here

voglio Extract required libraries into generated JAR così posso distribuirlo, senza la necessità di inclusa la cartella lib ovunque vada.

Ecco la domanda originale.

che sto cercando di costruire un barattolo di Netbeans che confezionare tutti i file di libreria al suo interno. Ho sentito che è possibile con Eclipse scegliendo Esporta. Con Netbeans, se "Clean and Build" creerà un jar eseguibile nella cartella dist, ma tutte le librerie da cui dipende sono in una cartella chiamata lib. Ho bisogno che tutto sia in un file jar. Penso che abbia a che fare con il file build.xml. Ecco cosa dice il mio. Cosa sto sbagliando qui?

Grazie per l'aiuto.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="BONotifier" default="default" basedir="."> 
    <description>Builds, tests, and runs the project BONotifier.</description> 
    <import file="nbproject/build-impl.xml"/> 
    <target name="-post-jar"> 
    <jar jarfile="dist/Combined-dist.jar"> 
     <zipfileset src="${dist.jar}" excludes="META-INF/*" /> 
     <zipfileset src="lib/commons-io-1.4.jar" excludes="META-INF/*" /> 
     <manifest> 
     <attribute name="Main-Class" value="controller.MainController"/> 
     </manifest> 
    </jar> 
    </target> 
</project> 

Aggiornamento: Il codice di cui sopra è in build.xml. Quanto segue è in build-impl.xml. Suppongo che questo significhi che build.xml sia eseguito durante build-impl.xml.

<target name="-pre-init"> 
    <!-- Empty placeholder for easier customization. --> 
    <!-- You can override this target in the ../build.xml file. --> 
</target> 

Nota ho ottenuto questo da questo forum.

+0

Provare ad aggiungere questa attività jar a "nbproject/build-impl.xml" dove è l'attività di creazione del jar. –

+0

Si prega di consultare l'aggiornamento. – kentcdodds

+0

Si prega di consultare di nuovo l'aggiornamento :) – kentcdodds

risposta

15

preferisco this soluzione dal non c'è nulla da scaricare, tutto basato su build Ant (~ 20 linee). In questo modo non c'è dipendenza aggiuntiva con cui preoccuparsi. Se hai un paio di minuti, puoi imparare anche su Ant.

Sembra che il link all'articolo originale è rotto (grazie Oracle). Ecco un altro link.

L'articolo originale è disponibile anche da Oracle link.

+0

Ha funzionato come un fascino. Grazie :) – kentcdodds

+3

@ user845279 Questo link è rotto ora. Qualche possibilità di risolverlo o di includere le informazioni rilevanti direttamente nella tua risposta? – gnomed

+0

@gnomed Ho aggiornato il collegamento, sentitevi liberi di aggiornare la mia risposta se è possibile parafrasare la soluzione. – user845279

-1

Non c'è nessun costruito in modo per farlo. È possibile, tuttavia, utilizzare strumenti esterni per archiviare questo OneJar come:

http://one-jar.sourceforge.net/

Edit: A quanto pare questo è anche il modo in cui il team di Netbeans si aspetta che tu lo faccia: http://wiki.netbeans.org/PackagingADistributableJavaApp

+0

Si prega di consultare l'aggiornamento. – kentcdodds

+0

Vedo il tuo aggiornamento. Ti consiglio comunque di andare su OneJar. È molto più versatile, in più, vedi la mia modifica: 9 – bluehallu

4
  1. Aprire il barattolo generato con 7zip (o altri strumenti)
  2. aggiungere la libreria vaso nella cartella
  3. Modifica il manifesto per impostare il percorso di classe
1

Okay, questo è il mio soluzione. Anch'io ho avuto il problema con il mio programma che compila e gira su Netbeans ma fallisce quando ho provato Java -jar MyJarFile.jar Ora, non capisco perfettamente Maven e penso che questo sia il motivo per cui ho difficoltà ad ottenere Netbeans 8.0.2 per includere il mio jar file in una libreria per inserirli in un file jar. Stavo pensando a come usavo i file jar senza Maven in Eclipse.

È Maven che compila tutte le dipendenze e i plugin. Non Netbeans.(Se puoi fare in modo che Netbeans lo faccia, ti preghiamo di dirci come (^. ^) V)

[Risolto - per Linux] aprendo un terminale.

Poi

cd/MyRootDirectoryForMyProject

Successivo

org.apache.maven.plugins MVN: Maven-compiler-plugin: Compilare

Successivo

mvn installare

Questo creerà il file jar in la directory di destinazione.

MyJarFile-1.0-jar-con-dependencies.jar

Ora

obiettivo cd

(Potrebbe essere necessario eseguire: chmod + x MyJarFile-1.0-jar-con-dipendenze. jar) E infine

java -jar MyJarFile-1.0-jar-con-dependencies.jar

Si prega di consultare

https://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException

vi posterò questa soluzione in un paio di altre pagine con un problema simile. Spero di poter salvare qualcuno da una settimana di frustrazione.

Problemi correlati