我目前正在使用它附带的 Jetty 容器运行 Solr。通过以下方式从命令行运行时它可以正确运行:
java -jar start.jar
当我在与 start.jar 相同的目录中时。不幸的是,我需要能够从任何目录启动 jetty ,而不仅仅是包含 start.jar 的目录。我尝试了很多选择,例如:
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
每次我得到这个回溯:
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)
最佳答案
在调用 java 之前简单地切换到正确的目录....为我解决了这个问题。
关于java - jetty 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7537390/