无法使用Jar文件查找或加载主类

我正在尝试使用加载jar

@echo off java -jar Test.jar pause 

随着的表现

 Manifest-Version: 1.0 Main-Class: classes.TestClass 

在Jar目录中,当我提取它时,我可以清楚地看到classes \ TestClass文件。

编辑: classes.TestClass确实有一个public static void main(String[] args)

classes.TestClass Package Deceleration是package classes;

但我仍然收到错误消息

 Could not find or load main class classes.TestClass 

我经历过这个问题所能找到的一切,但似乎没有任何帮助。

我已经尝试编辑类路径,重做清单,安装新的JRE。

我还应该做什么?

我得到它像这样工作:

TestClass.Java

 package classes; public class TestClass { public static void main(String[] args) { System.out.println("Test"); } } 

在命令行上使用javac来生成TestClass.class 。 将TestClass.class放在文件夹classes/

MANIFEST.MF

 Manifest-Version: 1.0 Main-Class: classes.TestClass 

然后跑

 jar cfM MANIFEST.MF test.jar classes/ 

然后运行它

 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.创建一个文本文件calles Manifest.txt并提供值为

Main-Class:classes.TestClass

把jar子盖成两片

jar cfm test.jar Manifest.txt classes / * .class

把jar子当作

java -jar test.jar

我最后遇到了同样的问题,因为我复制并粘贴了单词代码,这是一个稍微不同的’ – ‘字符使用类型,这就是我所能想到的,当我手动键入它时它工作了

我有一个类似的问题,我可以通过为jar文件所在的所有父文件夹(在Linux系统上)授予执行权限来解决。

例:

/folder1/folder2/folder3/executable.jar

所有3个文件夹(folder1,folder2和folder3)以及executable.jar都需要当前用户的execute-privilege,否则返回错误“找不到或加载主类…”。

没有完整的信息,这很难调试。

此时最令人讨厌的两个问题是jar中的文件没有存储在JAR中的目录中,或者它不是正确的文件。

你需要存储TestClass.class – 一些人在这个商店新建了源文件TestClass.java。

您需要创建jar文件,以便TestClass.class出现类路径。 确保它不是“/ classes”。 使用zip查看文件并确保它有一个“类”的路径。

至少我这样做的方式如下:

如果您有一个嵌套的src树(比如com.test.myclass.MyClass),并且您要从根目录进行编译,则需要执行以下操作:

1)当你创建jar(通常把它放在一个脚本中):jar -cvfm my.jar com / test / myclass / manifest.txt com / test / myclass / MyClass.class

2)清单应该如下:

Mainfest-version:1.0 Main-Class:com.test.myclass.MyClass Class-Path :. my.jar

3)现在你可以从这样的任何地方运行jar:

java -jar my.jar

希望这有助于某人

我按照以下说明在Eclipse中创建可执行文件.jar。 然后运行命令“java -jar .jar”来启动程序。

它负责创建mainfest并为您包含主类和库文件部分。

http://java67.blogspot.com/2014/04/how-to-make-executable-jar-file-in-Java-Eclipse.html

MANIFEST.MF中的错误条目导致加载失败时我遇到了一个奇怪的问题。 这是我试图推出一个非常简单的scala程序的时候:

不正确:

 Main-Class: jarek.ResourceCache Class-Path: D:/lang/scala/lib/scala-library.jar 

正确:

 Main-Class: jarek.ResourceCache Class-Path: file:///D:/lang/scala/lib/scala-library.jar 

对于不正确的版本,我收到了一个神秘的信息,就像OP一样。 可能在解析清单文件时应该说出格式错误的urlexception

清单文件中使用绝对路径是IntelliJ用于为程序提供长类路径的方法。