当前位置: 首页 > 面试题库 >

Java Manifest.mf类路径问题

桑睿识
2023-03-14
问题内容

我一直在尝试运行一个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的路径,因此这里没有问题。

您认为可能是什么问题?我看这东西已经太久了。谢谢!


问题答案:

class-path中的条目相对于嵌入它们的JAR(您正在使用的)或URL。为了使您的绝对路径有效,您需要将其转换为网址,例如,

file:/opt/sybase13/...

没有使用变量的机制。

尽管JAR规范没有明确说明,但是绝对file:方案URL确实可以在class-path属性中使用。



 类似资料:
  • 问题内容: 我有两节课: MyApplication 库 该库已被编译为Library.class,并且源代码不再可用。我现在正在尝试从源代码编译MyApplication。MyApplication取决于库。该库的软件包名称为org.myCompany。我尝试将我的类路径设置为以下内容: 产生以下javac编译器错误消息: 所以我将类路径更改为: 产生完全相同的错误消息。 如何设置Windows

  • 问题内容: 我有一个Spring Boot应用程序,当我在本地使用“ mvn clean install”进行部署时,它运行良好,但是当通过Jenkin产生战争时,它会引发以下错误。 我只是尝试使用超越比较来比较2个war文件,而且除了用于编译的JDK次要版本外,我看不到任何差异。 我试图在我的本地版本和jenkin版本中搜索SerializationConfig.class, 以下命令的输出是:

  • 我在hadoop作业中看到了这一点: 这个问题看起来与这个问题类似,只是我没有在我的类路径上提供任何jax-b依赖项。然而,它看起来确实像hadoop。 有没有办法强迫hadoop使用jdk jaxb JAR,或者只使用它自己提供的jaxb JAR,而不是两者混合使用?

  • 这个问题并不是指在整个集群中分发jar供工作人员使用。 它指的是在客户端机器上指定一些额外的库。更具体地说:我试图运行以下命令来检索序列文件的内容: 它抛给我这个错误: 我有一个名为DoubleArrayWritable的可写类。事实上,在另一台计算机上,一切都运行良好。 我试图设置以包含包含该类的jar,但没有结果。实际上,跑步时: 结果不包含我添加到HADOOP_类路径中的jar。 问题是:如

  • 我在设置Java开发环境时遇到了一个问题。在过去,我安装了Java,然后安装了IDE,然后开始编写代码。我现在开始设置我的笔记本电脑,使用命令行编译和记事本作为我的代码编辑器。这是我第一次尝试纠正错误。 我运行javac,它创建了我的。类文件没有问题,但是我尝试用java A运行类文件,它抛出了一个错误: c:\工作区 我的类路径设置为C:\Program Files\Java\jdk-14.0.

  • 我是一名新的程序员,正在学习Java入门课程。我的操作系统是Windows 10。大约4-5个月前,我们最初设置了类路径,从命令行运行了我们的“Hello World”程序,然后再也没有使用过它。 现在我们正在做一个输入/输出重定向到文件的练习,我必须忘记我的类路径是什么,所以我试图重新设置它。 我已经使用以下命令设置了我的类路径: 然后我尝试运行我的程序,它位于目录C:\Users\grant\