Bal*_*usC 40
在Windows资源管理器中双击JAR文件时会发生这种情况,但JAR本身实际上不是可执行的 JAR.一个真正的可执行JAR应该至少有一个带有main()方法的类并在其中引用它MANIFEST.MF.
在Eclispe中,您需要将项目导出为Runnable JAR文件而不是JAR文件,以获得真正的可执行JAR.
或者,如果您的JAR只是一堆密切相关的类(库)的容器,那么您不应该双击它,而是使用一些ZIP工具打开它.Windows资源管理器默认情况下将JAR文件与之关联java.exe,这对于那些类型的库JAR不起作用.
Isr*_*elm 18
当您更改JAR for ZIP的扩展名,提取zip内容并对文件进行一些修改(例如更改MANIFEST.MF文件这是一种非常常见的情况)时,会经常发生这种情况,很多时候Eclipse不生成MANIFEST文件我们想要,或者我们想要修改它的CLASS-PATH或MAIN-CLASS值.
压缩文件夹时会出现问题.
有效的Runnable/Executable JAR具有下一个结构:
myJAR (Main-Directory)
|-META-INF (Mandatory)
|-MANIFEST.MF (Mandatory Main-class: com.MainClass)
|-com
|-MainClass.class (must to implement the main method, mandatory)
|-properties files (optional)
|-etc (optional)
Run Code Online (Sandbox Code Playgroud)
如果JAR符合这些规则,那么如果您使用ZIP工具手动生成它并且然后将扩展更改回.jar将无效
完成后,尝试使用以下命令在命令行上执行:
java -jar myJAR.jar
Run Code Online (Sandbox Code Playgroud)
当您使用zip工具解压缩,再次更改文件和zip时,通常JAR结构会更改为此结构,这是不正确的,因为在文件系统的顶部添加了另一个目录级别,使其成为损坏的文件,如下所示:
**myJAR (Main-Directory)
|-myJAR (creates another directory making the file corrupted)**
|-META-INF (Mandatory)
|-MANIFEST.MF (Mandatory Main-class: com.MainClass)
|-com
|-MainClass.class (must to implement the main method, mandatory)
|-properties files (optional)
|-etc (optional)
Run Code Online (Sandbox Code Playgroud)
:)
可能是因为问题MANIFEST.MF.如果您知道主类所在的包,请尝试使用以下命令启动主类.
java -cp launcher/target/usergrid-launcher-1.0-SNAPSHOT.jar co.pseudononymous.Server
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148603 次 |
| 最近记录: |