Could not find or load main class with a Jar File
我试着用
1 2 3 | @echo off java -jar Test.jar pause |
有…的清单
1 2 | Manifest-Version: 1.0 Main-Class: classes.TestClass |
在jar目录中,当我提取classes estclass文件时,我可以清楚地看到它。
编辑:
但我仍然收到错误信息
1 | Could not find or load main class classes.TestClass |
对于这个问题,我已经经历了我所能找到的一切,但似乎没有任何帮助。
我尝试过编辑类路径,重做清单,安装新的JRE。
我还应该做什么?
我让它像这样工作:
测试类
1 2 3 4 5 6 7 8 9 |
在命令行上使用
MF宣言
1 2 | Manifest-Version: 1.0 Main-Class: classes.TestClass |
然后运行
1 | jar cfm test.jar MANIFEST.MF classes/ |
然后运行它作为
1 | java -jar test.jar |
java -cp"full-path-of-your-jar" Main
要运行在某些包中具有"public static void main"的任何其他类,
java -cp"full-path-of-your-jar" package1.package2.packages-hierarchy.ClassHavingMain
1.创建名为manifest.txt的文本文件,并将值提供为
Main-Class: classes.TestClass
2.将罐子创建为
jar cfm test.jar Manifest.txt classes/*.class
3.把罐子当作
java -jar test.jar
我最后也遇到了同样的问题,因为我把代码从Word上复制粘贴下来,它是一种略微不同的"-"字符类型,这就是我所能想到的,当我手动输入时,它就工作了。
我有一个类似的问题,我可以通过为JAR文件所在的所有父文件夹(在Linux系统上)授予执行权限来解决。
例子:
/folder1/folder2/folder3/executable.jar
所有3个文件夹(folder1、folder2和folder3)以及executable.jar都需要当前用户的执行权限,否则返回"找不到或加载主类…"错误。
如果没有完整的信息,很难进行调试。
此时最有可能看到的两件事情是JAR中的文件没有存储在JAR中的目录中,或者它不是正确的文件。
您需要存储testclass.class——这里有些人是新来的,他们存储源文件testclass.java。
您需要创建JAR文件,以便testclass.class以类的路径出现。确保它不是"/classes"。使用zip查看文件并确保其路径为"classes"。
我知道这是一个古老的问题,但最近我遇到了这个问题,所有的答案都没有帮助我。然而,科拉尔对瑞安·阿特金森的回答的评论确实让我对这个问题产生了兴趣。
我在
这不起作用,因为新创建的
这可以通过使用
简单的解决方案是用
当manifest.mf中的错误条目导致加载失败时,我遇到了一个奇怪的问题。当时我正试图启动一个非常简单的scala程序:
不正确的:
1 2 | Main-Class: jarek.ResourceCache Class-Path: D:/lang/scala/lib/scala-library.jar |
对的:
1 2 | Main-Class: jarek.ResourceCache Class-Path: file:///D:/lang/scala/lib/scala-library.jar |
由于版本不正确,我收到了一条神秘的信息,和OP一样。在分析清单文件时,它可能会说类似于格式错误的URL异常。
Intellij使用清单文件中的绝对路径为程序提供长类路径。
我按照下面的指令在Eclipse中创建一个可执行的.jar。然后运行命令"javajar .jar"启动程序。
它负责创建Mainfest,并为您包含主类和库文件部件。
http://java67.blogspot.com/2014/04/how-to-make-executable-jar-file-in-java-eclipse.html
至少我这样做的方式如下:
如果您有一个嵌套的SRC树(比如com.test.myclass.myclass),并且您是从根目录编译的,那么需要执行以下操作:
1)创建jar时(通常将其放在脚本中):jar-cvfm my.jar com/test/my class/manifest.txt com/test/myclass/myclass.class
2)清单应如下所示:
Mainfest版本:1.0主类:com.test.myclass.myclass类路径:我的罐子
3)现在您可以从这样的任何地方运行jar:
Java- jar My.jar
希望这能帮助别人
通过ftp传输jar文件后,我收到了相同的错误消息,忘记了将其设置为二进制模式。
我犯了这个错误,因为我在我的
我有一个不相关的类路径库并解决相同的错误