java - 我无法从 .class 目录外部创建工作 .jar

标签 java jar manifest

我想创建一个 jar 文件。但我希望能够从另一个目录创建它。如果我从存储 *.class 文件的同一目录创建它,我似乎只能创建工作 .jar 文件。我做了一个更简单的项目来展示我的困难:

├── MANIFEST.MF
├── 测试.java
├── 类(class)
│   ├── 测试.class

list .MF

Manifest-Version: 1.0
Main-Class: Test

如果我从/classes/目录运行此命令,我将创建工作正常的 Test.jar

jar -cfm Test.jar ../MANIFEST.MF *.class

但是,如果我从/目录使用此命令,

jar -cfm Test.jar MANIFEST.MF classes/*.class

我尝试运行 .jar 文件,但收到以下错误:

Error: Could not find or load main class Test

如何从与/classes/不同的目录创建 .jar 文件?

最佳答案

使用-C选项,如手册所述:

-C dir Temporarily changes directories to dir while processing the following inputfiles argument. Multiple -C dir inputfiles sets are allowed.

For example:

% jar uf foo.jar -C classes bar.class

would change to the classes directory and add the bar.class from that directory to foo.jar

关于java - 我无法从 .class 目录外部创建工作 .jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759959/

相关文章:

java - 在 Java 中,如何在日志文件中包含动态版本信息?

java - 什么是 MANIFEST.MF 中的 list 版本?

java - AndroidElement和WebDriver等待方法问题

java - 创建 jar 失败

java - .Jar 文件兼容性

scala - 一般获取 Scala 类型的 list

java - 家谱,无法解析 child

java - 在 Java8 映射中使用函数

java - 为什么 C 需要原型(prototype)函数而 Java 不需要?

java - 使用 zipgroupfileset 从 Ant Build 中排除 Jar