Java创建.jar文件

时间:2011-01-04 20:04:04

标签: java jar

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

到目前为止,我试过

java -jar cf myJar.jar myClass.class

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

5 个答案:

答案 0 :(得分:107)

要创建.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

另见

答案 1 :(得分:15)

你已经提到过你正在使用Eclipse ... Eclipse可以为你创建JAR,只要你运行每个有一次main的类。右键单击该项目,然后单击“导出”,然后在Java文件夹下选择“Runnable JAR file”。在启动配置中选择类名,选择保存jar的位置,并在必要时决定如何处理库。点击完,擦上裤子。

答案 2 :(得分:8)

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

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

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

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

答案 3 :(得分:4)

方式1:

让我们有java文件test.java,它包含主类testa 现在我们首先将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 ......

答案 4 :(得分:2)

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