当前位置: 首页 > 知识库问答 >
问题:

.jar错误-找不到或加载主类

邹毅
2023-03-14

我试图将HelloWorld放入一个.jar文件并运行它,但它不起作用。我创建了java文件并在程序中键入,然后用cmd写到:

javac HelloWorld.java
java HelloWorld

而且奏效了。然后我进去了

echo Main-Class: HelloWorld >manifest.txt
jar cvfm HelloWorld.jar manifest.txt HelloWorld.class

并得到了输出

added manifest
adding: HelloWorld.class(in = 426) (out= 288)(deflated 32%)
java -jar HelloWorld.jar
HelloWorld.jar
Error: Could not find or load main class path\HelloWorld.jar

这与我尝试用64位JRE7\bin、JDK1.7.0_51\bin、JDK1.7.0_51\jre\bin和32位JRE7\bin中的java.exe文件打开它时(在快速关闭的窗口中)得到的输出相同。我卸载并重新安装了jre和jdk,重新创建了.class和.jar文件,但问题仍然存在。我用的是Win8。

编辑:我试着按照艾瑟莉亚的建议去做,但没有成功。我将helloworld.java放在path\com\stackoverflow\user\blrp中,对其进行编译,通过输入

java com.stackoverflow.user.blrp.HelloWorld

在路径上。然后通过以下方法创建清单和jar:

(echo Manifest-Version: 1.0
echo Class-Path: .
echo Main-Class: com.stackoverflow.user.blrp.HelloWorld) >manifest.txt
jar cvfm HelloWorld.jar manifest.txt com\stackoverflow\user\blrp\HelloWorld.class

并得到了输出

added manifest
adding: com/stackoverflow/user/blrp/HelloWorld.class(in = 454) (out= 312)(deflat
ed 31%)

但是,java-jar helloworld.jar仍然起作用,而helloworld.jar没有作用(同样的错误)。我也试着不做package的事情,只做Class-Path在manifest中,同样的结果。

(另外,在提出问题之前,我通过使用.bat文件解决了这个问题,但让这个jar工作仍然很好。)

共有1个答案

赵嘉纳
2023-03-14

谢谢jbaliuka的建议。我打开了注册表编辑器(通过在cmd中键入regedit)并转到HKEY_CLASSES_ROOT>jarfile>shell>open>command,然后打开(默认值)并将值从

“C:\Program Files\java\jre7\bin\javaw.exe”-jar“%1”%*

“C:\Program Files\java\jre7\bin\java.exe”-jar“%1”%*

(我刚刚删除了javaw.exe中的w。)之后,您必须右键单击一个JAR->open with->选择default Program->导航到java文件夹并打开\jre7\bin\java.exe(或java文件夹中的任何其他java.exe文件)。如果不起作用,尝试切换到javaw.exe,用它打开一个jar文件,然后切换回来。

我对编辑注册表一无所知,只知道它很危险,所以在这样做之前,您可能想要备份它(在顶部栏中,文件>导出)。

 类似资料:
  • 问题内容: 我试图将HelloWorld放在.jar文件中并运行它,但是它不起作用。我创建了Java文件并在程序中键入内容,然后用cmd编写: 而且有效。然后我进入 得到了输出 然后我进入 第一行有效,而第二行却给我一个错误: 当我尝试使用64位jre7 \ bin,jdk1.7.0_51 \ bin,jdk1.7.0_51 \ jre \ bin中的java.exe文件打开它时,我得到的输出是(

  • 当我尝试在Windows上以编程方式运行命令时,会发生一些奇怪的事情。 运行以下命令时: 我知道这个错误 错误:找不到或加载主类JAR [106,97,118,97,32,-30岁,-128,-109,106,97,114,32,110,112,116,95,108,105,99,101,110,115,101,46,106,97,114,32,-30岁,-128,109,111,32,119,1

  • 问题内容: 我在编译和运行Java代码时遇到了麻烦,该代码旨在允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题- 有人可以帮我吗?谢谢。 问题答案: 您必须确保将文件的

  • 我一直在搜索这一点,但没有任何帮助,我试图运行的主要类,但不断得到一个错误。我负责这个 我的主文件位于中 我尝试了多个命令,但一无所获。 我想运行位于中的主类,但总是出现此错误,请提供帮助吗?

  • 我有一个名为TestInventory.java的类,其他类在默认包中,都在src文件夹中。然而,当我运行它时,我得到: 错误:找不到或加载主类

  • 在完成spring-boot服务器之后,我想将它变成一个jar,以便可以将它部署在远程服务器上。我选择使用maven完成此操作 在.jar-with-dependecies.jar创建之后,我将其上载到服务器上并尝试运行 和其他人一样 链接2 链接3 链接4 mvn命令: 这也不起作用: