Ben export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
CLASSPATH için tools.jar ekleyeceğini biliyorum , ama CLASSPATH için klasör ayarlamak istiyorum
bunun gibi
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
ama işe yaramıyor.
Ben export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
CLASSPATH için tools.jar ekleyeceğini biliyorum , ama CLASSPATH için klasör ayarlamak istiyorum
bunun gibi
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
ama işe yaramıyor.
Yanıtlar:
İlk olarak, genel olarak, env değişkenini ayarlamak CLASSPATH
genellikle çözdüğünden daha fazla soruna neden olur - çünkü tüm uygulamaların aynı sınıf yolunu istemesi / ihtiyacı yoktur ve sınıf yoluna istenmeyen veya hatta kavanozlar dahil edildiğinde genellikle kırılır. Bir java uygulaması sadece gereken minimum sayıda kavanoz içermelidir, daha fazla, daha az değil.
Eğer özgü varsa, bunu bireysel uygulamalar sınıf yolu sonra genellikle komut satırı seçeneği tercih edilir, ayarlanmış olması gerekir: java -cp path1:path2:...
. Masaüstü simgeleri bu seçenekleri içerecek şekilde komutlarını değiştirebilir veya kabuk komut dosyaları bu seçenekleri içerecek şekilde değiştirilebilir.
Bununla birlikte (ve kuralda her zaman istisnalar olduğu için), java sürümüne bağlı olarak (bu, java 6 veya daha yeni bir sürümü gerektirir), sınıf yoluna bir kavanoz dizininin " *
" eklenerek ekleneceğini belirtebilirsiniz. bir dizinin sonunda; örneğin, aşağıdakiler:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Anlamına geliyor:
/dir1/foo.jar
- (tek kavanoz) sınıfyoluna eklenecektir;/dir2/dir3
- bu dizindeki tüm jarlenmemiş sınıflar sınıfyoluna eklenecektir (uygun paket yapısında com.my.Foo.class
olmalı ; örneğin içinde olmalıdır /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- Bu dizindeki tüm kavanozlar (ör. /dir5/dir6/*.jar
) sınıfyoluna eklenir. Bu " *
" bir joker karakter değildir (kullanamazsınız f*.jar
ve hatta kullanamazsınız *.jar
); "tüm kavanozları ekle" yi gösteren özel bir karakterGenel olarak, uygulamanın sınıf yoluna tam bir kavanoz dizini eklemeniz gerekiyorsa, uygulama doğru bir şekilde paketlenmedi. Bunun yerine, uygulamanın bağlı olduğu kavanoz listesini içeren bir manifest olması gerekir. Ya da en azından, sınıf yolunuza sadece bir kavanoz eklenmelidir ve bu kavanoz tezahüründe bazı alt dizindeki tüm kavanoz listesini gösterebilir.
Eğer sınıfyolunu kalıcı olarak ayarlamak istiyorsanız 1) java'nın nerede kurulduğunu öğrenin .. "whereis java" kullanabilirsiniz openjdk-7/6 / usr / lib / jvm / .....
2) / etc / ortamında CLASSPATH kurmamız gerekiyor
sudo gedit /etc/environment
3) aşağıdaki beğenileri ekleyin .. (YAZDIRKEN HERHANGİ BİR ALANI DON) (java sürümünüze ve kurulumunuza göre özelleştirin) (bu ana yol açık jdk 7 içindir)
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
dizini ":" ile ayır