繁体   English   中英

使用classpath在雪豹上运行Jar

[英]Running Jar on Snow Leopard with classpath

我正在运行雪豹,我只是在eclipse上编写了Java类。 eclipse项目引用了一个用户库,该用户库本身指向了我在系统中某处的一堆jar文件。 当我通过eclipse运行应用程序时,一切都会顺利进行。 然后,我将该类导出为jar文件,并尝试通过键入以下内容从终端运行它:

java - jar myApp.jar

它抛出java.lang.NoClassDefFoundError异常,这意味着它找不到我尝试引用的库。 知道我的用户库jar文件位于/ Users / myname / tempJars中之后,我还尝试使用-cp选项(java -cp /Users/myname/tempJars -jar myApp.jar)提及类路径或直接引用它在清单文件中。 两次尝试均失败,并且错误相同。 这些库是Java 1.5库,因此我认为我应该尝试通过JAVA_HOME环境变量来引用另一个Java版本。 我构建了以下脚本:

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:/Users/myname/tempJars

java -jar myApp.jar

再次,没有好处。 我用谷歌搜索了如何在雪豹中执行jar,在某些地方发现了32/64位的大问题,甚至尝试使用-d32选项执行,但仍然无济于事。 由于相同的代码在eclipse中可以很好地执行,因此我非常确信这只是设置JVM的问题,以便它正确地包含用户库。

有人可以帮我吗?

提前致谢。

您需要在类路径中列出JAR本身,而不仅仅是列出包含它们的目录。 (列出目录是针对您在包层次结构中存在未存档的.class文件时的情况)

您可能需要执行-cp /Users/myname/tempJars/libA.jar:/.../libB.jar

我相信某些(但可能不是全部)JVM支持通配符,因此-cp /Users/myname/tempJars/*或其某些变体可能起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM