[英]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.