【问题标题】:Class-path in manifest not read when running jar in Unix在 Unix 中运行 jar 时未读取清单中的类路径
【发布时间】:2011-01-02 09:44:57
【问题描述】:

我有一个需要在 Unix 上运行的客户端应用程序。它在 Windows 中运行良好,但在 unix 中出现 NoClassDefFound 异常。这是我的清单文件:

清单版本:1.0 Ant 版本:Apache Ant 1.6.5 创建者:2.3(IBM 公司) 主类:com.main.Client 类路径:lib/commons-lang-2.3.jar lib/commons-io-1.3.2.jar lib/comm ons-logging-api-1.1.jar lib/log4j-1.2.12.jar

还有Client.jar结构:

com com/main 库 元信息

要运行它,我使用以下命令:

$JAVA_HOME/jre/bin/java -jar Client.jar

它在 Windows 中运行良好。不知何故,我认为它没有正确阅读清单。请帮忙!谢谢!

【问题讨论】:

  • 我尝试在本地添加一个包含所需 jar 的 lib 文件夹,它工作正常。所以我猜类路径被正确读取但不知何故jar文件没有正确提取?

标签: unix jar manifest noclassdeffounderror


【解决方案1】:

一种方法是确保您已为运行程序的用户定义了 CLASSPATH 变量。

$ echo $CLASSPATH

如果上面没有显示任何内容,则将其导出

$ export CLASSPATH="/lib/commons-lang-2.3.jar:/your/other/paths"

【讨论】:

  • 感谢您的回复!但是清单文件中的 Class-Path 属性不应该为我处理吗?我想要的是一个独立的客户端应用程序,以便它可以移植到其他机器上。
【解决方案2】:

可能是因为您的 meta-inf 文件夹是小写的?

【讨论】:

    猜你喜欢
    • 2018-04-10
    • 1970-01-01
    • 2023-03-04
    • 2015-01-18
    • 2018-01-03
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多