2011-09-24 20 views
9

tarafından yayınlanmaktadır. Şu anda Solr'ı taşıdığı bir Jetty konteynerinden geçiriyorum. Ben start.jar aynı dizinde olduğumdaJetty Classpath,

java -jar start.jar 

: aracılığıyla komut satırından çalışırken doğru çalışır. Ne yazık ki, sadece start.jar içeren değil, herhangi bir dizinden iskele başlatmak mümkün olmalıdır.

java -Dsolr.solr.home=~/solr/ -Djetty.home=~/solr/ -Djetty.logs=~/solr/logs/ -cp ~/solr/start.jar:~/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar:~/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar:~/solr/lib/servlet-api-2.5-20081211.jar -jar ~/solr/start.jar ~/solr/etc/jetty.xml 

Bu izleme alabilmeniz her zaman: Ben gibi birçok seçenek, denedim çalıştırmak olduğunu

java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration 
at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
at org.mortbay.start.Main.invokeMain(Main.java:179) 
at org.mortbay.start.Main.start(Main.java:534) 
at org.mortbay.start.Main.start(Main.java:441) 
at org.mortbay.start.Main.main(Main.java:119) 

cevap

5

Not -cp seçenek sizin beri göz ardı edilir

java ... -cp ~/solr/start.jar:... -jar ~/solr/start.jar ~/solr/etc/jetty.xml 

-jar seçeneğini kullanın. man java itibaren

:

-jar

Bu seçeneği kullandığınızda, JAR dosyası tüm kullanıcı sınıfların kaynağıdır ve diğer kullanıcı sınıfı yolu ayarları dikkate alınmaz.

İki seçeneğiniz vardır: -jar seçeneğini kullanarak

  • Keep, ama o zaman (bu sınıf yolu girişleri olamaz unutmayın kavanoz manifest dosyasında sınıf yolunu sağlamanız gerekir göreli Geçerli yol için, yürütmekte olduğunuz jar dosyasına göreli olarak)
  • -jar seçeneğini atlayın ve ana sınıfı açıkça belirtin.
0

Geçerli kullanıcının ana dizine kısayol olarak ~ kullanıyorsunuz. Tüm tilde karakterlerini mutlak bir yolla değiştiririm ve bunun işe yarayıp yaramadığını görürsünüz.

+1

Bu, zaten yürütmeden önce bash tarafından yapılmıştır. Echo'yu deneyin ~ ve göreceksiniz. – aioobe

+0

Her zaman bash'dan kaçtığını varsaymıyordu. Ubuntu ara sıra, varsayılan kabuk seçenekleriyle (* çizgi * vs * bash *, herkes?) Garip şeyler yaptı ve geçmişte tilde-genişleme sorunları yaşadım. – Femi

+0

Tüm uyumlu mermiler için aynı. Favori el kitabınızda tilde genişlemesini okuyun. – aioobe

7

Sadece java çağırmadan önce doğru dizine geçmek .... benim için sorunu çözdü.

+0

Aynı sorunu yaşadım ve her neyse onu çalıştırmaya çalışıyordum :). Bu çözüldü! Teşekkürler. – despot

0

Ocak 2014'te buna rastladım. Sorun şu ki, başka bir yerden bir Küme Hayvan Kurucu Kurulumu çalıştırdığımdan, $ SOLR_HOME/lib klasörü, zkCli.bat'ın bulunduğu yerde $ SOLR_HOME/cloud-scripts altında taşındı. lib klasörü $ SOLR_HOME altındadır ve şimdi çalışıyor.