2010-06-16 31 views
7

Tek bir .java (driver.java) dosyası var Komut satırından derlemeye ve çalıştırmaya çalışıyorum. Yapısı, içinde sadece birkaç düzine sınıf bulunan EXT adlı bir klasör olan EXT.jar isimli harici kütüphaneyi kullanır. .jar kitaplıkları ile Java komut satırı sorunları

yüzden çalıştırın:

javac -cp EXT.jar driver.java 

Bu sınıf sadece iyi derler.

sonra çalıştırdığınızda:

java -cp EXT.jar driver 

Ben java.lang.NoClassDefFoundError olsun.

Garip bir şekilde, JAR paketini açtığımda (şimdi EXT adlı kök dizinde bir klasör var), son komut gayet iyi çalışıyor! Sürücü işe yarayacak!

Sürücü sınıfının, gerçek bir EXT klasörü yerine EXT.jar/EXT/*class sınıfındaki dosyaları arayabilmem için herhangi bir yolu var mı?

Teşekkürler!

cevap

18

Sınıfı yerel dizine derliyorsunuz. Bu yüzden, çalıştırdığınızda, geçerli dizini sınıf yolunuza eklemeniz gerekir. Ör:

java -cp .;EXT.jar driver 

Ya linux

: Artık buna sahip yol ile

java -cp .:EXT.jar driver 

, kendi sınıf yolu CLASSPATH'E ortamında ne olursa olsun birlikte sadece EXT.jar (diyorsun değişken) ve başka hiçbir şey (bu yüzden, driver.class öğesinin bulunduğu geçerli dizinin dışında tutulur)

+0

Mükemmel! Teşekkürler! – Monster

+0

Yapacak. Görünüşe göre bir yanıtı kabul etmek için 15 dakika beklemem gerekiyor :) – Monster

+0

Thanx Matt, cevabın tek bir kavanoz olması durumunda benim için işe yaradı, ama şimdi başka bir kavanoz kullanmam lazım. Her iki kavanoz da projemde "libs" adlı bir klasörde. Ama işe yaramadı. Ubuntu kullanıyorum. plz help – AndroidGuy