关于jar:无法运行Java应用程序。

Cannot run Java application. Main not found

本问题已经有最佳答案,请猛点这里访问。

我对Java完全陌生,我需要运行一个我从网上下载的应用程序。有问题的应用程序是"spinn3r"客户机,请访问:http://code.google.com/p/spinn3r-client/downloads/detail?名称=spinn3r-client-3.4.06.tar.gz

我提取了tar.gz并找到了一个.jar文件。然后我跑了:

1
java -jar applicationName.jar

我得到以下错误:

1
no main manifest attribute, in spinn3r-client-3.4.06.jar

我该怎么解决这个问题?


正如@alderath所提到的,这主要是一个API,您可以在自己的应用程序中使用它。不过,JAR文件还包含一个测试客户机,您可以按如下方式启动它:

1
2
3
4
5
$ java -cp spinn3r-client-3.4.06.jar com.spinn3r.api.Main
Usage: com.spinn3r.api.Main [OPTION]

Required params:
...

因为它不是executable jar文件,所以需要显式传递所需的JAR文件和包含main方法的类。


要使JAR文件成为可执行文件,在META-INF/manifest.mf下的JAR中,需要具有以下属性:

1
Main-Class: youclassname.class


将所有.java文件和.class文件(以及其他任何你想要包括的东西)一起收集到一个目录中。使用文本编辑器,创建包含以下行的文件(例如mymanifest):

1
2
3
4
5
6
7
8
9
      Manifest-Version: 1.0
      Main-Class: MyMainClass

where MyMainClass is the name of the class containing the main method you want to use.
From the command line, execute the command:

     jar cvfm myResult.jar myManifest *.java *.class

where myResult.jar is the jar file you are trying to create, myManifest is the file you created in step 2, and everything else is the files you want to include.