我正在学习Java,遇到了问题。我创建了6个不同的类,每个类都有自己的main()
方法。我想为每个类创建可执行的.jar
文件,也就是6个可执行的.jar
文件。
到目前为止,我尝试过:
java -jar cf myJar.jar myClass.class
我得到了'Unable to access jarfile cf'错误提示。我在做什么错了,但我不知道具体是什么问题。我同时在使用Eclipse IDE。
jar
而不是java
:jar cf myJar.jar myClass.class
此外,如果您想使其可执行,您需要指定一个入口点(即具有public static void main(String[] args)
的类)来运行您的应用程序。通常通过创建包含Main-Class
标题(例如Main-Class:myClass
)的清单文件来完成此操作。e
选项来定义入口点:jar cfe myJar.jar myClass myClass.class
最后,您可以执行它:
java -jar myJar.jar
由于您提到了您正在使用Eclipse... Eclipse可以为您创建JAR文件,只要您已经运行过每个具有主函数的类一次。 右键单击项目并单击“导出”,然后在Java文件夹下选择“可执行JAR文件”。 在启动配置中选择类名,选择保存jar的位置,并决定是否需要处理库。 单击完成,在裤子上擦手。
通常情况下,您需要将比-e
开关提供的内容更多地放入清单中,在这种情况下,语法如下:
jar -cvfm myJar.jar myManifest.txt myApp.class
命令为:"create verbose jar文件名 manifest文件名",紧跟着是您想要包含的文件。
请注意,您提供的清单文件名称可以是任何名称,因为jar
将自动重命名它并将其放置在jar文件的正确位置。
方法一:
假设我们有一个名为test.java的Java文件,其中包含主类testa。现在,我们首先要将Java文件编译成可执行文件,只需在命令行中输入javac test.java即可。接着,在同一目录下创建一个名为manifest.txt的文件,并在其中写入Main-Class: mainclassname(mainclassname是你的主类名)。例如:
Main-Class: testa
jar cvfm anyname.jar manifest.txt testa.class
方法一:
我们可以通过以下命令运行 jar 文件:java -jar anyname.jar。
方法二:
假设我们有一个名为one的包,其中包含了所有的类。我们可以通过以下命令创建 jar 文件:
jar cf anyname.jar one
Main-Class: one.mainclassname
在第三行中,我们使用以下命令运行jar文件:
java -jar anyname.jar
制作具有多个类文件的jar文件:jar cf 文件名.jar 类文件1.class 类文件2.class 类文件3.class ......
如果您不想手动处理清单文件,可以使用“e”选项。这将明确定义应用程序中的入口点。
jar vcfe anyname.jar EntryPoint EntryPoint.class <files to include>
jar vcfe people.jar Peer Peer.class ClientThread.class transport/*
java -jar people.jar
cf
甚至是java
的有效选项吗?无论如何,他想创建 jar 文件,而不是运行它。根据问题的描述。 - Mark Peters-jar
参数呢?而且,由于你没有指定清单文件,这样做也无法使其可执行。据说在JDK 6+中,你可以使用"e"作为一种快捷方式来避免手动提供清单文件:jar cfe myJar.jar myClass myClass.class
。 - Mark Peters