(JAVA)使用命令提示符从多个.class文件创建.jar文件

10

我编写了一个名为Main.java的.java文件,并使用Windows命令提示符中的javac进行了编译。编译器正在创建多个.class文件(称为Main.class、Main$1.class和Main$2.class——可能是因为我在Main.java文件中有匿名内部类)。我尝试创建一个可运行的.jar文件,以便双击快捷方式运行此应用程序(它是一个Java Swing应用程序),但当我导航到这三个类文件的目录并输入以下内容时,无法成功:

jar cfv file.jar Main.class Main$1.class Main$2.class

接着命令提示符会输出以下文字:

added manifest
adding: Main.class(in 4871) (out = 2848)(deflated 41%)
adding: Main$1.class(in 1409) (out = 833)(deflated 40%)
adding: Main$2.class(in 1239) (out = 767)(deflated 38%)

尽管如此,当我双击文件资源管理器中的file.jar文件时,简单来说,什么也没有发生。没有Swing应用程序打开。

希望有人能帮我解决这个问题。谢谢。

最好的祝愿……SL


看看这个回答了你的问题的问题。关于这个问题已经有很多讨论了。http://stackoverflow.com/questions/13081920/creating-an-executable-jar-file - DJ.
4个回答

16

你需要使用入口点开关-e(加上包含main()方法的类的名称),如下所示:

jar cfve file.jar Main Main.class Main$1.class Main$2.class

1
谢谢iamnotmaynard,这个方法可行。一旦这个网站允许我操作,我会接受这个作为正确的回答。 - Skyler
如果Java程序有更多的依赖JAR文件,如何在命令提示符中表示库路径。 - BasK

5

Java需要某种方式指定要自动启动的类,这就是Manifest(清单)-请参见此处的描述。您必须将Manifest.mf打包到您的jar文件中。


在您的情况下:将 Main-Class: Main 添加到文件 Manifest.txt 中,然后执行 jar cfv file.jar Manifest.txt Main.class Main$1.class Main$2.class - michael_s

0
  1. 打开命令提示符
  2. 使用cd命令进入jar文件所在的路径
  3. 运行命令jar xf fileName.jar
  4. 它将生成com、META-INFCopyright.mk文件
  5. 进入您想要修改类文件的特定包(基本上类文件位于com目录中)
  6. 从谷歌下载JAD.exe(它是Zip文件)
  7. 解压缩Zip文件,您将获得jad.exe
  8. 将要修改的类文件(放在包含jad.exe的文件夹中)
  9. 进入命令提示符,运行jad fileName.class(要修改的类文件名)
  10. 将生成fileName.jad文件,将其重命名为fileName.java
  11. 编译fileName.java(如果它引用其他类文件,请相应地在eclipse中进行配置)
  12. 一旦编译完成,请将类文件替换为步骤4中定义的目录中的文件
  13. 进入命令提示符,cd到步骤4的路径,运行jar cf fileName.jar(*表示所有类文件,无论目录如何)

0
  1. 打开命令提示符(Windows+R键,输入cmd)
  2. 直接输入“jar”命令,不需要引号
  3. 它会给出一些选项和用法。
  4. 使用你想要的选项
  5. 要创建一个包含类的JAR文件,请使用以下命令:jar cfv filename.jar example.class example2.class等等...
  6. 如果你正在使用Swing,请使用javac -deprecation SwingApplication.java进行编译,但JDK版本必须大于JDK1.1
  7. 运行java SwingApplication
  8. 祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接