Saya tahu itu export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
akan menambahkan tools.jar ke CLASSPATH, tetapi saya ingin mengatur folder ke CLASSPATH
seperti ini
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
tetapi tidak bekerja.
Saya tahu itu export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
akan menambahkan tools.jar ke CLASSPATH, tetapi saya ingin mengatur folder ke CLASSPATH
seperti ini
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
tetapi tidak bekerja.
Jawaban:
Pertama, secara umum, pengaturan env var CLASSPATH
biasanya menyebabkan lebih banyak masalah daripada yang dipecahkan - karena tidak semua aplikasi menginginkan / memerlukan classpath yang sama, & sering rusak ketika toples yang tidak diinginkan atau bahkan tidak dibutuhkan dimasukkan dalam classpath. Aplikasi java seharusnya hanya menyertakan jumlah minimum guci yang dibutuhkan, tidak lebih, tidak kurang.
Bila Anda memiliki tertentu, aplikasi individu yang melakukan mengharuskan classpath diatur, maka biasanya opsi baris perintah lebih disukai: java -cp path1:path2:...
. Ikon desktop dapat mengubah perintahnya untuk menyertakan opsi ini, atau skrip shell dapat dimodifikasi untuk menyertakan opsi ini.
Yang sedang berkata (dan karena selalu ada pengecualian pada aturan), maka tergantung pada versi java (ini membutuhkan java 6 atau yang lebih baru), Anda dapat menentukan bahwa seluruh direktori guci ditambahkan ke classpath dengan menambahkan " *
" di akhir direktori; misalnya, berikut ini:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Cara:
/dir1/foo.jar
- (tabung tunggal) akan ditambahkan ke classpath;/dir2/dir3
- semua kelas un-jar'd dalam direktori ini akan ditambahkan ke classpath (harus dalam struktur paket yang tepat; misalnya, com.my.Foo.class
harus berada di /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- semua stoples dalam direktori ini (yaitu, /dir5/dir6/*.jar
) akan ditambahkan ke classpath. Perhatikan bahwa " *
" ini bukan wildcard (Anda tidak bisa menggunakan f*.jar
atau bahkan *.jar
); itu adalah karakter khusus yang menunjukkan "tambahkan semua botol"Secara umum, jika Anda harus menambahkan seluruh direktori toples ke classpath aplikasi, aplikasi itu tidak dibundel dengan benar. Sebaliknya, aplikasi harus memiliki manifes yang berisi daftar toples yang tergantung padanya. Atau paling tidak, hanya satu toples yang harus ditambahkan ke classpath Anda, dan toples itu dapat memiliki seluruh daftar toples dalam beberapa subdirektori.
jika Anda ingin mengatur classpath secara permanen, maka 1) mencari tahu di mana java diinstal .. Anda dapat menggunakan "whereis java" openjdk-7/6 di / usr / lib / jvm / .....
2) kita perlu mengatur CLASSPATH di / etc / environment
sudo gedit /etc/environment
3) tambahkan like berikut .. (JANGAN MENINGGALKAN SETIAP RUANG SAAT MENGETIK) (sesuaikan menurut versi java dan instalasi Anda) (jalur home ini untuk open jdk 7)
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/bin"
export JAVA_HOME
CLASSPATH=".:/usr/lib/jvm/java-7-openjdk-i386/lib:/home/laptop/Desktop/a2"
export CLASSPATH
pisahkan direktori dengan ":"