Buradaki temel problem aslında şu. Bildiğiniz gibi JAR dosyaları, içerisinde derlenmiş class dosyaları taşır. Bu nedenle bir projede rahatlıkla kullanılabilir. Fakat bir class library projesine bu JAR dosyasını koyarsak ve sonrasında projeyi build edersek JAVA class dosyalarını yeniden derlemeyecektir. Bu da bizim yeni üretilen JAR dosyamızın içerisinde, projeye eklediğimiz diğer kütüphanelerin olmaması anlamına gelecektir.
Sözü fazla uzatmadan konuya giriyorum. Yapmamız gerekenler şu şekilde. Projemizi tamamladıktan sonra build etmeden hemen öncebuild.xml dosyasının içerisinde bir değişiklik yapacağız. Böylece istediğimiz JAR dosyalarını içeren bir JAR dosyası elde edeceğiz. Örneğin projemize gson-2.1.jar‘ı ekleyelim. Bunun için build.xml dosyamızda aşağıdaki gibi bir değişiklik yapmalıyız. İlgili alanları kendi dosya isimleriniz ile değiştirebilirsiniz.
<target name=
"SON-JAR"
>
<jar jarfile=
"dist/SON_DOSYA.jar"
>
<zipfileset src=
"${dist.jar}"
excludes=
"META-INF/*"
/>
<zipfileset src=
"lib/gson-2.1.jar"
excludes=
"META-INF/*"
/>
<manifest>
<attribute name=
"Main-Class"
value=
"com.test.maktas.Main"
/>
</manifest>
</jar>
</target>
Bu işlemden sonra projemizi build ettiğimizde çıkacak JAR dosyasında ilgili kütüphane dosyalarının da olduğunu göreceğiz.
( java, netbeans, jar, library, ClassNotFoundException, referring, java class library, jar inside jar )