9

我编写了一个名为 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%)

尽管如此,当我在 Windows 资源管理器中双击 file.jar 文件时,简单地说,什么也没有发生。没有打开任何摇摆应用程序。

希望有人可以帮助我解决这个问题。谢谢

最好的...SL

4

4 回答 4

15

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

jar cfve file.jar Main Main.class Main$1.class Main$2.class
于 2013-02-11T22:06:37.283 回答
5

必须告诉 java 应该自动启动哪个类。这就是 Manifest - 请参阅此处的描述 您必须将 Manifest.mf 打包到您的 jar 中。

于 2013-02-11T22:05:39.657 回答
0
  1. 打开命令提示符
  2. cd 转到 jar 文件所在的路径
  3. 运行命令jar xf fileName.jar
  4. 它将生成 com, META-INF&Copyright.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 Step 4 path,运行jar cf fileName.jar(*代表所有类文件,不考虑目录)
于 2016-06-02T07:03:27.693 回答
0
  1. 打开 cmd (windows+r 键入 cmd)
  2. 将命令简单地键入为没有 quatoes 的“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. 一切顺利
于 2018-06-17T11:09:43.860 回答