NetBeans - deploying all in one jar [duplicate]
Possible Duplicate:
Put external library to the JAR?
I have NetBeans 6.8 and I wrote one class which has two libraries (jar-files). Building it, I get a "dist" folder with my project.jar and a "lib" folder which contains the two lib jar files.
How could I get all this in one jar file? (I do not use Maven/Ant or something like this.)
Solution 1:
The basic problem is that the current version of Java does not support jars inside jars out of the box.
The recommended solution is to use the Class-Path line in the MANIFEST.MF file inside your jar to point to required libraries (relative paths are allowed) and then deploy all files together and invoking it with "java -jar your.jar"
If you really want to have a "jar-inside-jar" solution, we have used one-jar for several years, but gone away from it since our target JVM worked better with the solution described above.
http://one-jar.sourceforge.net/
I used it with the fatjar plugin in Eclipse. I do not have any experiences with building it into Netbeans, but it is simple to build into an ant script which I believe is what NEtbeans use anyway.
Solution 2:
You can create an extra build target in the build.xml file.
And use zipfileset
and zipgroupfileset
to create one big jar
e.g.
<target name="YourBigJar" depends="-post-jar">
<jar destfile="BigJar.jar">
<zipfileset src="dist/Project1.jar"/>
<zipfileset src="../OtherProject/dist/project2.jar"/>
<zipgroupfileset dir="../libs/."/>
</jar>
</target>