2013-02-11 87 views
7

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

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

+0

看看这个问题,它回答了你的问题。这方面有很多问题。 HTTP://计算器。com/questions/13081920/creating-an-executable-jar-file – 2013-02-11 22:07:27

回答

12

您需要使用的入口点开关-e(含该main()方法的类的名称)这样:

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

谢谢iamnotmaynard,这工作。我会接受这个作为正确的回应,一旦这个网站允许我... – Skyler 2013-02-11 22:07:51

+0

如果Java程序有更多的依赖jar文件。如何在命令提示符下表示lib路径。 – BasK 2014-12-04 06:19:23

5

东西得告诉java哪些类应该自动启动。 这就是清单 - 请参阅说明here 您必须将Manifest.mf打包到您的jar中。

+0

你的情况:将'Main-Class:Main'添加到文件Manifest.txt和'jar cfv file.jar Manifest.txt Main.class Main $ 1。 class Main $ 2.class' – 2013-02-11 22:07:08

0
  1. 打开命令提示符
  2. CD去所在的路径jar文件存在
  3. 运行命令jar xf fileName.jar
  4. 这将产生COM,META-INF & Copyright.mk个文件
  5. 转到特定的软件包,其中u要修改的类文件(基本上类文件存在于com目录)
  6. 下载从谷歌JAD.exe(它的Zip文件)
  7. 解压缩zip文件,你会得到jad.exe
  8. 将类文件(其中U希望修改)的文件夹中,包含jad.exe
  9. 进入命令提示符,运行jad fileName.clas S(类文件名其中U希望修改)
  10. fileName.jad文件将得到产生,其重命名为fileName.java
  11. 编译fileName.java(如果其指一些其它类文件中蚀相应地配置的话)
  12. 编译一次替换中的类文件,在步骤定义的目录4
  13. 转到命令提示符,cd步骤4路径,运行jar cf fileName.jar(*表示所有类文件,而不考虑目录)