首页 > 解决方案 > 使用清单创建的 jar 未找到类

问题描述

我创建了一个 jar due ant,它具有以下 manifest.mf

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.14
Created-By: 1.7.0_80-b15 (Oracle Corporation)
Main-Class: eu.ohim.ebc.filenet.app.StartApplication
Class-Path: dist/DocExtract.jar ./lib/ErrorControl_2.1.jar

jar有以下内容

--> META-INF 
  --> MANIFEST.MF 

--> eu
  --> ohim
    --> ebc
      --> filenet
        --> app
          --> StartApplication.class

在与 dist 相同的级别,我有一个名为 lib 的文件夹,其中包含 ErrorControl_2.1.jar。

所以,结构是

build.xml
dist
  --> DocExtract.jar
lib
  --> ErrorControl_2.1.jar

如果我尝试从基目录执行 java ant 目标,我会收到 ErrorControl_2.1.jar 中的类的 classNotFoundException 。貌似是找不到罐子。我是否必须在生成的所有 jar 文件的 jar 内附加,并且在清单中使用 jar 内的路径?这个路径是相对于 jar 还是相对于我正在执行 java -jar 的地方?

标签: javajarantmanifest

解决方案


好的 。解决了。无需在我正在执行的 jar 中添加外部 jar。而且,在 manifest.mf 中,路径必须相对于包装此清单的 jar。


推荐阅读