java - 使用清单创建的 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 的地方?
解决方案
好的 。解决了。无需在我正在执行的 jar 中添加外部 jar。而且,在 manifest.mf 中,路径必须相对于包装此清单的 jar。
推荐阅读
- html - 我不明白为什么我的高度自动的 div 占用了其父级的全部高度
- reactjs - 在 React 应用程序中导入单个组件
- c - 使用 fgetc() 将文件中的整数值分配给数组
- javascript - 我的代码可以在代码笔中使用,但不能在本地使用
- android - 有没有办法通过 EAP-TTLS 以编程方式连接到 Passpoint/Hotspot2.0 网络?
- python - 使用python扫描文件夹内所有确定的文件
- pip - 如何在 Windows 上为 python 3.3 安装 pip?
- amazon-web-services - 无服务器 - 无法从 S3 读取文件
- java - 如何在 Android 上管理从后台恢复的 Xamarin 表单应用程序?
- hadoop - 在 Web UI 中何处使用 HDFS 数据 - MapR