Java创建.jar文件

use*_*947 68 java jar

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

到目前为止我试过了

java -jar cf myJar.jar myClass.class
Run Code Online (Sandbox Code Playgroud)

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

Joã*_*lva 112

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

jar cf myJar.jar myClass.class
Run Code Online (Sandbox Code Playgroud)

此外,如果您想使其可执行,您需要为您的应用程序指明一个入口点(即,一个类public static void main(String[] args)).这通常通过创建包含标题的清单文件来完成Main-Class(例如,Main-Class: myClass).

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

jar cfe myJar.jar myClass myClass.class 
Run Code Online (Sandbox Code Playgroud)

最后,您可以执行它:

java -jar myJar.jar
Run Code Online (Sandbox Code Playgroud)

也可以看看


小智 16

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


Evg*_*eev 8

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

jar -cvfm myJar.jar myManifest.txt myApp.class
Run Code Online (Sandbox Code Playgroud)

其中包括:"create verbose jarFilename manifestFilename",后跟您要包含的文件.

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


Jay*_*hah 5

方法1:

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

  Main-Class: testa
Run Code Online (Sandbox Code Playgroud)

然后我们通过以下命令创建jar文件:

  jar cvfm anyname.jar manifest.txt testa.class
Run Code Online (Sandbox Code Playgroud)

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

方式2:

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

  jar cf anyname.jar one
Run Code Online (Sandbox Code Playgroud)

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

  Main-Class: one.mainclassname 
Run Code Online (Sandbox Code Playgroud)

在第三行中,然后我们通过以下命令运行jar文件:

  java -jar anyname.jar
Run Code Online (Sandbox Code Playgroud)

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