当前位置:  开发笔记 > 编程语言 > 正文

Java Manifest.mf类路径问题

如何解决《JavaManifest.mf类路径问题》经验,为你挑选了1个好方法。

我一直在尝试运行一个jar文件 - 让我们称之为test.jar - 它在Unix系统上使用Sybase jconn3.jar.

我创建了一个MANIFEST.MF文件,其中包含以下内容:

Class-Path: $SYBASE/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

这给出了一个ClassNotFoundError.$ SYBASE是指向/ opt/sybase13的系统变量; 我也尝试过以下方法:

Class-Path: /opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

Class-Path: opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

但是,如果我将jconn3.jar文件从$ SYBASE/jConnect-6_0/classes复制到test.jar所在的目录,并将我的MANIFEST.MF更新为如下所示:

Class-Path: jconn3.jar commons-net-1.3.0.jar

应用程序按预期运行.

现在,我已经能够通过在本地复制它来验证jconn3.jar文件的工作原理; 我的MANIFEST.MF文件包含我的Main-Class的路径,所以这里没有问题.

您认为这可能是什么问题?我一直在看这个东西太久了.谢谢!



1> erickson..:

类路径中的条目要么是相对于它们所嵌入的JAR(你工作的),要么是URL.要使绝对路径有效,您需要将它们转换为URL,例如,

file:/opt/sybase13/...

没有使用变量的机制.

尽管JAR规范没有明确说明,但绝对file:方案URL在class-path属性中起作用.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有