多年来,我一直在使用 IDE (Eclipse) 为我编译我的 jar 文件,这些年来我已经了解了它们是如何工作的,但是我仍然不完全理解 jar 是如何知道主要方法在哪里的,我也是好奇手动编译它有多简单(或不简单)。
我有一个(某种)我正在开发的 IDE,它需要能够编译和运行一个 jar,其中包括来自用户的文件以及一个 jar 或一堆其他类(API),我有在这里看到一些提到 JavaJavaCompiler
类但从未提供演示代码的问题,而且似乎几乎没有人知道如何手动编译,所以我想贡献一下。那么,如何使用 java 代码创建 jar 文件呢?请提供演示代码。
问问题
260 次
1 回答
4
我还是不完全明白jar是怎么知道main方法在哪里的
这就是清单文件的工作。
我也很好奇手动编译它有多简单(或不简单)。
这非常简单——在构建类文件后使用该jar
工具。
让我们全面了解一下。
创建一个名为的目录src
和一个名为bin
. 在 下src
,创建一个目录demo
和一个Test.java
在该目录中调用的文件:
package demo;
public class Test {
public static void main(String[] args) {
System.out.println("Working!");
}
}
现在编译代码:
javac -d bin src/demo/Test.java
(这将适用于 Unix 和 Windows。)
然后创建一个名为的清单文件manifest.txt
- 它实际上放在哪里并不重要,但我src
暂时将其保留:
Main-Class: demo.Test
现在构建一个jar文件:
jar cfm test.jar src\manifest.txt -C bin demo/Test.class
并运行它:
java -jar test.jar
这些天来,您可以在命令行上指定入口点,而不是自己构建清单文件:
jar cfe test.jar demo.Test -C bin demo/Test.class
有关如何使用该jar
工具以及清单的潜在内容的更多详细信息,请参阅链接文档。
于 2013-07-18T22:23:00.683 回答