linux生成jar包 - Java创建.jar文件




java命令 (4)

我正在学习Java,但我遇到了问题。 我创建了6个不同的类,每个类都有自己的main()方法。 我想为每个类创建可执行的.jar ,即6个可执行的.jar文件。

到目前为止我试过了

java -jar cf myJar.jar myClass.class

我得到'无法访问jarfile cf' 。 我做错了什么,但我不知道是什么。 如果这意味着什么,我也在使用Eclipse IDE。


将所有6个班级分为6个不同的项目。 然后创建所有6个项目的jar文件。 通过这种方式,您将获得6个可执行jar文件。


方式1:

让我们拥有包含主类testa的java文件test.java现在首先我们将java文件编译为javac test.java,我们在同一目录中创建文件manifest.txt并编写Main-Class:mainclassname。 例如:

  Main-Class: testa

然后我们通过这个命令创建jar文件:

  jar cvfm anyname.jar manifest.txt testa.class

然后我们通过这个命令运行jar文件:java -jar anyname.jar

方式2:

让我们有一个名为one的包,每个类都在其中。 然后我们通过这个命令创建jar文件:

  jar cf anyname.jar one

然后我们在anyname.jar文件中的目录META-INF中打开manifest.txt并写入

  Main-Class: one.mainclassname 

在第三行。然后我们通过这个命令运行jar文件:

  java -jar anyname.jar

使jar文件具有多个类文件:jar cf anyname.jar one.class two.class three.class ......


要创建.jar文件,您需要使用jar而不是java

jar cf myJar.jar myClass.class

此外,如果要使其可执行,则需要为应用程序指定一个入口点 (即具有public static void main(String[] args) )。 这通常通过创建包含Main-Class标头的manifest文件来完成(例如, Main-Class: myClass )。

但是,正如Mark Peters指出的那样,使用JDK 6,您可以使用e选项来定义入口点:

jar cfe myJar.jar myClass myClass.class 

最后,您可以执行它:

java -jar myJar.jar

也可以看看


通常你需要在清单中放入比使用-e开关更多的内容,在这种情况下,语法是:

jar -cvfm myJar.jar myManifest.txt myApp.class

其中包含:“create verbose jarFilename manifestFilename”,后跟您要包含的文件。

请注意,您提供的清单文件的名称可以是任何名称,因为jar会自动重命名它并将其放在jar文件中的正确位置。







jar