Portable Classpath di NetBeans
Mungkin banyak teman-teman yang sudah tidak asing lagi bagaimana caranya menambahkan suatu library kedalam IDE NetBeans, yups caranya sih sangat mudah yaitu tinggal klik kanan node Library di Project Inspector kemudian pilih Add JAR/Folder seperti gambar dibawah ini:

Click to View Large Image
Sebenarnya sih tidak ada yang salah dengan cara seperti diatas, tetapi akan bermasalah kalau kita sering membagikan contoh project atau prototype project kita ke teman-teman yang lain atau misalkan secara tidak sengaja seluruh folder project tersebut ikut ter-commit ke repository
Nah efek samping dari cara diatas yaitu :
- Jika teman kita tidak menginstal NetBeans tetapi hanya menginstal apache-ant saja, project yang kita berikan tidak mungkin langsung berhasil dijalankan karena ada beberapa library yang dibutuhkan tidak diketemukan didalam classpath.
- Ketika teman kita membuka contoh project yang kita berikan dari IDE NetBeans, bisa dipastikan NetBeans pasti mengeluarkan Warning Message yang menandakan bahwa ada beberapa library yang tidak diketemukan. Dan solusinya kita harus me-Resolve Reference Problem permasalahan tersebut dengan cara seperti gambar dibawah ini ( Apakah teman-teman pernah mengalami kasus seperti ini ? Saya pernah mengalaminya
) :
Agar NetBeans tidak mengeluarkan pesan seperti diatas ketika kita memberikan contoh project atau prototype project kita ke seorang teman, ada 1 file yang perlu kita edit dahulu supaya library yang akan digunakan di project kita menjadi lebih portable. File tersebut yaitu private.properties yang terdapat di dalam folder NamaProject/nbproject/private seperti gambar dibawah ini:
Sudah tahu dimana letak permasalahannya ?? Yups NetBeans membuat full path pada file private.properties ke library yang kita gunakan yang dapat kita lihat pada baris 1 dan 2 seperti dibawah ini:
1 2 3 4 | file.reference.ibatis-dao-2.jar=/home/anton/NBPortableClasspath/lib/ibatis-dao-2.jar file.reference.ibatis-sqlmap-2.jar=/home/anton/NBPortableClasspath/lib/ibatis-sqlmap-2.jar jaxws.endorsed.dir=/opt/netbeans-6.0.1/java1/modules/ext/jaxws21/api user.properties.file=/home/javamaniac/.netbeans/6.0/build.properties |
Agar project kita dapat berjalan mulus di komputer teman kita yang hanya menginstal apache-ant maupun NetBeans, edit saja file private.properties diatas menjadi seperti berikut :
1 2 3 4 | file.reference.ibatis-dao-2.jar=lib/ibatis-dao-2.jar file.reference.ibatis-sqlmap-2.jar=lib/ibatis-sqlmap-2.jar jaxws.endorsed.dir=/opt/netbeans-6.0.1/java1/modules/ext/jaxws21/api user.properties.file=/home/javamaniac/.netbeans/6.0/build.properties |
Setelah selesai melakukan pengeditan pada file private.properties, sekarang cobalah untuk melakukan proses build dari NetBeans. Jika tidak ada pesan error yang muncul, sekarang mari kita coba kopikan folder project diatas ke komputer lain yang berbeda sistem operasinya dan di komputer tersebut hanya terinstal JDK plus apache-ant saja. Dan dibawah ini adalah hasilnya :
Ini output di Windows setelah kita melakukan pengeditan diatas :
D:/NBPortableClasspath>type D:/NBPortableClasspath/nbproject/private/private.properties
file.reference.ibatis-dao-2.jar=lib/ibatis-dao-2.jar
file.reference.ibatis-sqlmap-2.jar=lib/ibatis-sqlmap-2.jar
jaxws.endorsed.dir=/opt/netbeans-6.0.1/java1/modules/ext/jaxws21/api
user.properties.file=/home/javamaniac/.netbeans/6.0/build.properties
D:/NBPortableClasspath>ant -p
Buildfile: build.xml
Builds, tests, and runs the project NBPortableClasspath.
Main targets:
clean Clean build products.
compile Compile project.
debug Debug project in IDE.
default Build and test whole project.
jar Build JAR.
javadoc Build Javadoc.
run Run a main class.
test Run unit tests.
test-single Run single unit test.
Default target: default
D:/NBPortableClasspath>ant clean run
Buildfile: build.xml
-pre-pre-compile:
[mkdir] Created dir: D:/NBPortableClasspath/build/classes
-do-compile:
[javac] Compiling 3 source files to D:/NBPortableClasspath/build/classes
compile:
run:
BUILD SUCCESSFUL
Total time: 4 seconds
D:/NBPortableClasspath>
Dan dibawah ini output kalau kita tidak mengedit file private.properties :
D:/NBPortableClasspath>type D:/NBPortableClasspath/nbproject/private/private.properties
file.reference.ibatis-dao-2.jar=/home/anton/NBPortableClasspath/lib/ibatis-dao-2.jar
file.reference.ibatis-sqlmap-2.jar=/home/anton/NBPortableClasspath/lib/ibatis-sqlmap-2.jar
jaxws.endorsed.dir=/opt/netbeans-6.0.1/java1/modules/ext/jaxws21/api
user.properties.file=/home/javamaniac/.netbeans/6.0/build.properties
D:/NBPortableClasspath>ant -p
Buildfile: build.xml
Builds, tests, and runs the project NBPortableClasspath.
Main targets:
clean Clean build products.
compile Compile project.
debug Debug project in IDE.
default Build and test whole project.
jar Build JAR.
javadoc Build Javadoc.
run Run a main class.
test Run unit tests.
test-single Run single unit test.
Default target: default
D:/NBPortableClasspath>ant clean run
Buildfile: build.xml
-do-clean:
[delete] Deleting directory D:/NBPortableClasspath/build
-pre-pre-compile:
[mkdir] Created dir: D:/NBPortableClasspath/build/classes
-do-compile:
[javac] Compiling 3 source files to D:/NBPortableClasspath/build/classes
[javac] D:/NBPortableClasspath/src/nbportableclasspath/TesDaoImpl.java:8: pa
ckage com.ibatis.dao.client does not exist
[javac] import com.ibatis.dao.client.DaoManager;
[javac] ^
[javac] D:/NBPortableClasspath/src/nbportableclasspath/TesDaoImpl.java:9: pa
ckage com.ibatis.dao.client.template does not exist
[javac] import com.ibatis.dao.client.template.SqlMapDaoTemplate;
[javac] ^
[javac] D:/NBPortableClasspath/src/nbportableclasspath/TesDaoImpl.java:17: c
annot find symbol
[javac] symbol: class SqlMapDaoTemplate
[javac] public class TesDaoImpl extends SqlMapDaoTemplate implements TesIbat
isDaoJar {
[javac] ^
[javac] D:/NBPortableClasspath/src/nbportableclasspath/TesIbatisDaoJar.java:
8: package com.ibatis.dao.client does not exist
[javac] import com.ibatis.dao.client.Dao;
[javac] ^
[javac] D:/NBPortableClasspath/src/nbportableclasspath/TesIbatisDaoJar.java:
16: cannot find symbol
[javac] symbol: class Dao
[javac] public interface TesIbatisDaoJar extends Dao {
[javac] ^
[javac] D:/NBPortableClasspath/src/nbportableclasspath/TesDaoImpl.java:19: c
annot find symbol
[javac] symbol : class DaoManager
[javac] location: class nbportableclasspath.TesDaoImpl
[javac] public TesDaoImpl(DaoManager daoManager) {
[javac] ^
[javac] 6 errors
BUILD FAILED
D:/NBPortableClasspath/nbproject/build-impl.xml:323: The following error occurr
ed while executing this line:
D:/NBPortableClasspath/nbproject/build-impl.xml:158: Compile failed; see the co
mpiler error output for details.
Total time: 2 seconds
D:/NBPortableClasspath>
Perhatian kalau ingin benar-benar portable ( No NetBeans Locking ):
Buatlah sebuah folder khusus untuk menampung seluruh library yang akan dipakai dan tempatkan folder tersebut di bawah folder project seperti gambar dibawah ini :
Usahakan jangan menggunakan library yang ditambahkan lewat Library Manager meskipun library tersebut standart bawaan NetBeans. Karena kalau kita menggunakan library bawaan NetBeans, maka NetBeans akan menuliskan fullpath ke library yang kita gunakan pada file project.properties seperti pada gambar dibawah ini :
Apa akibatnya jika kita memberikan project tersebut pada teman yang tidak menginstal NetBeans ? Hasilnya sudah bisa ditebak diluar kepala, pasti akan error karena NetBeans menambahkan full path ke library yang digunakan oleh project tersebut sedangkan library-nya tidak terdapat pada komputer teman kita
So, happy NetBeaning guy’s






salam kenal mas, saya mo tanya nich
saya lagi buat program simpan pinjam, pada menu dah saya panggil form-formnya dah bisa, trus kalo salah satu formnya saya close form menunya juga ikut di close kode yang saya pake untuk close System.exit(0);
gimana caranya supaya pada saat saya close salah satu form, form menunya gak ke tutup.
saya pake nb.6.0
thanks
@fny: hmm.. saya belum pernah mas ngerubah file build-impl.xml, source codenya terlalu rumit dan sptnya itu file build-impl.xml auto generate dari netbeans (Maksud saya, klo kita ngerubah sesuatu di netbeans, netbeans pasti akan ngerubah jg file build-impl.xml)
Klo mau nambahin, custom ant-task jangan di inject dari file build-impl.xml tapi mending kita override ajah dari file build.xml (cara ini yang paling sering saya pakai)
Dan sepertinya merubah langsung file build-impl.xml not recommended deh mas
Untuk penambahan custom ant-task, mas bisa lihat di tulisan saya tentang report mas. Disana saya nulis, gmn caranya nambah custom ant-task untuk proses kompilasi report. Silahkan dicek mas, dan klo ada pertanyaan silahkan ditanyakan klo saya bisa jawab saya jawab koq
Mas, saya mau tanya ttg coding baris ke-1 n 2 (di bawah ini) yang katanya ada di private.properties. Tp saya sudah cari dan tidak ada. Yg ada hanya baris 3 dan 4 saja.
file.reference.ibatis-dao-2.jar=/home/anton/NBPortableClasspath/lib/ibatis-dao-2.jar
file.reference.ibatis-sqlmap-2.jar=/home/anton/NBPortableClasspath/lib/ibatis-sqlmap-2.jar
Jadi, gmn cara mengubahnya ya? Apa coding itu ditambahin manual aja?
Sebenernya waktu itu project saya yg sebelumnya uda bisa mas ketika dijalankan di komp lain, bisa jalan dan tidak ada masalah. Tp masalahnya saya lupa, di mana ngutak-ngatiknya dan lupa untuk simpan caranya. T.T Jd, skrg waktu mulai project baru kebingungan lg(bodohnya..fufu). Mas, mungkin tau sesuatu yg berhubungan sama mengubah file build-impl.xml (di post init section atau pre init section gitu)?
Maaf ya klo pertanyaannya aneh. Tp mohon dijawab ya mas.
Bos…Mas…Om…KK…Mr Master..
Saya sedang mengerjakan Project aplikasi perhitungan menggunakan J2ME
Nah…dibutuhkan direktori perhitungan tambahkan yang namanya oMath (Mas/Om pasti sudah tau)
yang saya butuhkan adalah penjelasan,sejarah/ Guide book,Tutorial tentang oMath
Justru itu yang diminta oleh pembimbing saya guna dicantumkan dalam proposal
Minta Tolong
saintgeorge_cross@yahoo.com
Ok deh mas, tapi saya ke blognya sampean koq banyak sport-nya yah ?
trims boy………… kalo lhu butuh tutorial visual basic, bisa kunjungi email gw key