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

错误:无法找到或加载主类JAR文件

欧阳晗日
2023-03-14

我在创建工作JAR文件时遇到问题。我可以跑步。类文件如下所示:

$ java -cp build/ example.HelloWorld 
Hello World!

但作为jar运行(在构建脚本中)失败:

java -cp build/ -jar dist/HelloWorld.jar
Error: Could not find or load main class example.HelloWorld

我将通过使用简单的Hello World项目来简化我遇到的问题:

.
├── build
│   └── example
│       └── HelloWorld.class
├── build.sh
├── dist
│   └── HelloWorld.jar
└── src
    └── example
        └── HelloWorld.java

class文件需要进入build文件夹。JAR文件需要在dist文件夹中。build.sh是构建JAR文件的bash脚本。如下:

mkdir -p build && \
mkdir -p dist && \                                         
javac -cp src/ src/example/HelloWorld.java -d build && \
jar -cfe dist/HelloWorld.jar example.HelloWorld build/ && \
java -cp build/ -jar dist/HelloWorld.jar

你好世界java:

package example;

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!");
    }
}

运行JAR文件,如构建中所示。sh结果

$ ./build.sh 
Error: Could not find or load main class example.HelloWorld

如前所述,直接运行应用程序效果很好。

这是HelloWorld.jar的结构。

.
├── build
│   └── example
│       └── HelloWorld.class
└── META-INF
    └── MANIFEST.MF

MANIFEST. MF的内容。

Manifest-Version: 1.0
Created-By: 1.8.0_40 (Oracle Corporation)
Main-Class: example.HelloWorld

我已经工作了6年了,现在只有C和C。把我看作是Java的新手。我真的不知道我做错了什么,我没有想法去谷歌试试。

共有1个答案

庄嘉
2023-03-14

您的JAR文件的结构错误。您不能将build目录放在那里。它必须如下所示:

.
├── example
│   └── HelloWorld.class
└── META-INF
    └── MANIFEST.MF
 类似资料:
  • 问题内容: 我想连接我的java程序以连接数据库并检索数据。它的编译完美,但运行时即时得到这个 我已经安装了Java SQL驱动程序,并将jar路径作为CLASSPATH添加到环境变量中 问题答案: 您应该从这里下载驱动程序 和JAR文件需要添加到项目类路径。 首先,右键单击Eclipse Project,然后单击Project-> Build Path-> Configure Build Pat

  • 当我正常运行此代码时,它会吐出: 异常线程"main"java.lang.ClassNotFoundExcture: bookReader 在java.net.URLClassLoader.find类(URLClassLoader.java:381) 在java.lang.ClassLoader.load类(ClassLoader.java:424)<在sun.misc.启动$AppClassLo

  • 问题内容: 我试图将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

  • 我试图将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

  • 问题内容: 我在笔记本电脑上有一个日食项目,我将其推送到Git https://github.com/chrisbramm/LastFM-History-Graph.git 它可以完全在我的笔记本电脑上运行,并且可以正常运行/构建,但是在我的台式机上,Eclipse没有显示错误 错误:找不到或加载主类lastfmhistoryguis.InputPanel 我尝试从以下位置构建项目: 但是什么也没