【发布时间】:2011-02-14 05:49:19
【问题描述】:
我正在运行雪豹,我刚刚在 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
再一次,不好。我用谷歌搜索了如何在雪豹中执行 jars,在某些地方发现了 32/64 位大问题,甚至尝试使用 -d32 选项执行,但仍然无济于事。 由于相同的代码在 Eclipse 中执行得很好,我非常相信这只是设置 JVM 以使其正确包含用户库的问题。
谁能帮我解决这个问题?
提前致谢。
【问题讨论】:
标签: java osx-snow-leopard classpath