当前位置: 首页 > 面试题库 >

.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中的java.exe文件打开它时,我得到的输出是(在快速关闭的窗口中),与以及32位的jre7 \
bin。我已经卸载并重新安装了我的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不能(相同错误)。我也尝试不做包装的事情,只是清单中的类路径,结果相同。

(此外,在使用.bat文件询问问题之前,我已经解决了该问题,但是让那个jar工作仍然很不错。)


问题答案:

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

"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*

(我只是删除了javaw.exe中的w。)之后,您必须右键单击一个jar->用->打开->选择默认程序->导航到您的java文件夹,然后打开\ jre7 \
bin \
java.exe(或任何其他文件)您的Java文件夹中的其他java.exe文件)。如果它不起作用,请尝试切换到javaw.exe,用它打开一个jar文件,然后再切换回去。

除了危险,我对编辑注册表一无所知,因此您可能想要在执行此操作之前对其进行备份(在顶部栏中,文件>导出)。



 类似资料:
  • 当我尝试在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

  • 我试图将HelloWorld放入一个.jar文件并运行它,但它不起作用。我创建了java文件并在程序中键入,然后用cmd写到: 而且奏效了。然后我进去了 并得到了输出 这与我尝试用64位JRE7\bin、JDK1.7.0_51\bin、JDK1.7.0_51\jre\bin和32位JRE7\bin中的java.exe文件打开它时(在快速关闭的窗口中)得到的输出相同。我卸载并重新安装了jre和jdk

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

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

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

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