如何在文件树中创建带有入口点的jar文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在文件树中创建带有入口点的jar文件?相关的知识,希望对你有一定的参考价值。
我正在尝试使用此命令创建一个jar文件:
jar -cef ./bin/a/MainClass formatter.jar ./bin/*
bin包含两个带有类文件的文件夹(比如“./bin/a/”和“./bin/b/”)。
我可以很好地创建jar,但我似乎无法让它正确执行。它运行时无需打印或执行任何操作。我认为它一定不能使用我提供的入口点。
MainClass有一个简单的主方法:
public static void main(String[] args) {
System.out.println("HIT");
}
我究竟做错了什么?是否有必要在与包含main的类相同的文件夹中创建jar?
编辑:jar -tf按要求:
C:UsersJonathanDocumentsWorkspaceJavaAutoFormatter>jar -tf formatter.jar
META-INF/
META-INF/MANIFEST.MF
bin/a/
bin/a/MainClass.class
bin/a/ParsedFile.class
bin/b/
bin/b/Token.class
bin/b/Tokenifier.class
答案
看到这个tutorial。 jar
命令的e
选项的参数应该是类名,而不是路径名。此外,在指定要包含在jar中的类列表时,应注意引用文件,使目录结构与包名匹配。否则,类路径查找将失败。尝试:
jar -cef a.MainClass formatter.jar -C bin .
另一答案
来自Wikipedia JAR(Java ARchive)是一种包文件格式,通常用于将许多Java类文件以及关联的元数据和资源(文本,图像等)聚合到一个文件中进行分发。
JAR文件是包含特定于Java的清单文件的归档文件。它们基于ZIP格式构建,通常具有.jar文件扩展名。
jar cvfem <f input> <e input> <m input> input_files
jar cvfem Program.jar com.company.app.Main manifest.txt com net ..img.png
___________ ____________________ ____________ __________________
^ ^ ^ ^
| | | |
f e m input files
哪里
- c =创建Jar文件。
- v =详细输出。详细输出告诉您每个文件的名称,因为它已添加到JAR文件中。
- f =输出到文件而不是stdout。
- e =罐子里的入口点。对于使用java -jar Program.jar运行jar文件。
- m =显示额外数据。
Manifest.txt内容
Created-by: Joma
- input_files = file,输入文件的dir用空格分隔。
导致Jar内容
__ com
| |__ company
| |__ app
| | Main.class
| | Class1.class
| | Class2.class
| |__ content
| Class3.class
| Class4.class
| Class5.class
|__ net
| file1.txt
| file2.txt
|__ img.png
|__ META-INF
MANIFEST.MF
以上是关于如何在文件树中创建带有入口点的jar文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IntelliJ IDEA 中创建 .jar 文件或导出 JAR(如 Eclipse Java 存档导出)? [复制]
HSQLDB:如何指定可以找到带有 SQL/JRT 函数的 JAR 文件的位置?