简体   繁体   English

可执行jar无法找到或加载主类

[英]executable jar Could not find or load main class

I've been struggling with this common error and just can't resolve it. 我一直在为这个常见错误而苦苦挣扎,但无法解决它。 This application is composed of multiple packages and runs fine within JCreator (at the moment I need to use this IDE rather than Eclipse). 该应用程序由多个程序包组成,并且可以在JCreator中正常运行(目前,我需要使用此IDE而不是Eclipse)。

My manifest file is here (there are 2 blank lines at the end): 我的清单文件在这里(末尾有2空行):

Manifest-Version: 1.0
Created-By: 1.6.0_45 (Sun Microsystems Inc.)
Main-Class: C:\COMPILE\MyProjects\douwe\classes\dykstra\dplus\main\DPMain

I wrote a bat file to create the jar: 我写了一个蝙蝠文件来创建罐子:

jar -cvfm DPlus.jar C:\\COMPILE\\MyProjects\\douwe\\classes\\MANIFEST.MF C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\main*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\library*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\command*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\file*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\file\\display*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\command*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\file*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\file\\display*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\gui*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\gui*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\job*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\job*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\types*.class C:\\COMPILE\\MyProjects\\douwe\\classes\\dykstra\\dplus\\util*.class jar -cvfm DPlus.jar C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ MANIFEST.MF C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ main * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ library * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ command * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ file * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ file \\ display * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ command * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ file * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ file \\ display * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ gui * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ gui * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ job * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ job * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ types * .class C:\\ COMPILE \\ MyProjects \\ douwe \\ classes \\ dykstra \\ dplus \\ util * .class

When I try to execute with the command 当我尝试使用命令执行

C:\\COMPILE\\MyProjects\\douwe\\classes>java -jar DPlus.jar C:\\ COMPILE \\ MyProjects \\ douwe \\ classes> java -jar DPlus.jar

I always get the error: 我总是得到错误:

Error: Could not find or load main class C:\COMPILE\MyProjects\douwe\classes\dykstra\dplus\main\DPMain

Can anyone see what I'm doing wrong here? 有人可以在这里看到我在做什么错吗?

Usually this error is due to MANIFEST.MF if the'res no application's entry point has been set. 通常,如果没有设置应用程序的入口点,则此错误是由于MANIFEST.MF引起的。 Your manifest file should have this line of code 您的清单文件应具有以下代码行

Main-Class: YourPackage.DPMain

Alternatively, you can do the following. 或者,您可以执行以下操作。

java -cp .;app.jar YourPackage.DPMain

In my implementation, there are something different from yours, you can refer: 在我的实现中,有一些与您不同的东西,您可以参考:

(1) The folder(before compressed) structure you need to add a META-INF folder and put your MANIFEST.MF in it (1)您需要添加META-INF文件夹并将其MANIFEST.MF放入其中的文件夹(压缩前)结构

在此处输入图片说明

(2) The content in your MANIFEST.MF I think your should use the package format instead of a folder tree format: (2) MANIFEST.MF的内容我认为您应该使用包格式而不是文件夹树格式:

Manifest-Version: 1.0
Main-Class: com.loadtest.mgr.LoadTestStarter

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM