我目前正在运行Solr,它是随附的Jetty容器.从命令行运行时,它可以正常运行:
java -jar start.jar
Run Code Online (Sandbox Code Playgroud)
当我和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
Run Code Online (Sandbox Code Playgroud)
每次我得到这个回溯:
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)
Run Code Online (Sandbox Code Playgroud) 我正在努力让我的Java程序在AIX上运行.我在Windows上使用Eclipse创建了一个可运行的Jar文件,jRams.jar如下所示.我继续得到一个类未找到错误,直到最后我把所有外部库放在同一目录中.
$ ls
JAXB2_20081030.jar
JAXB2_20110601.jar
activation.jar
asjava.jar
commons-beanutils-1.8.3.jar
commons-beanutils-bean-collections-1.8.3.jar
commons-beanutils-core-1.8.3.jar
commons-codec-1.5.jar
commons-collections-3.2.1.jar
commons-configuration-1.6.jar
commons-digester-2.1.jar
commons-jxpath-1.3.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
commons-logging-adapters-1.1.1.jar
commons-logging-api-1.1.1.jar
jRams.jar
jaxb-api.jar
jaxb-impl.jar
jaxb-xjc.jar
jaxb1-impl.jar
jremote.jar
jsr173_1.0_api.jar
log4j-1.2.16.jar
netty-3.2.4.Final.jar
$
Run Code Online (Sandbox Code Playgroud)
不过,我得到了类找不到错误.
$ java -jar jRams.jar
The java class is not found: com.jbase.jremote.JRemoteException
Run Code Online (Sandbox Code Playgroud)
jremote.jar肯定包含JRemoteException.为什么这不起作用?
UPDATE
感谢您的直截了当的答案.我现在更了解java应用程序和清单文件的本质.
事实证明我的ftp客户端是以ASCII模式而不是Binary传输的,因此jar文件已损坏.尽管如此,我学到了很多东西.