Java jar file load error Error: Could not find or load main class Something.class Caused by: java.lang.ClassNotFoundException: Something.class

Java jar file load error Error: Could not find or load main class Something.class Caused by: java.lang.ClassNotFoundException: Something.class

Main class 运行 不在 jar 文件中时。它不是任何包的一部分。当我尝试制作一个 jar 文件来封装它以及支持该文件的所有库时:

jar -cvf Something.jar src\*.class 

然后尝试 运行 它使用:

java -jar Something.jar

我得到以下信息,即使详细消息显示 'added manifest'。

no main manifest attribute, in Something.jar.

如果我查看它创建的清单,我会得到:

Manifest-Version: 1.0
Created-By: 13.0.1 (AdoptOpenJDK) 

但没有 Main-Class: Something.class 语句。

如果我添加 jar 文件的入口点:

jar -cvef src\Something.class Something.jar src\*.class

我收到以下错误:

Error: Could not find or load main class src\Something.class
Caused by: java.lang.ClassNotFoundException: src\Something.class

我使用以下方法得到相同的结果:

jar -cvef Something.class Something.jar src\*.class

我看到已经添加了入口点,因为 jar 文件的扩展在 MANIFEST.MF

中显示了以下内容
Manifest-Version: 1.0
Created-By: 13.0.1 (AdoptOpenJDK)
Main-Class: Something.class

以下是整个项目的开始class。

public class Something {


    public static void main(String[] args) {
        IDiffPresenter presenter = new DiffPresenter();
    }
}

我该如何解决这个问题?

答案最初被忽略了。

cd src 是关键成分。

javac Something.java
jar -cvef Something Something.jar  *.class
java -jar Something.jar

感谢 user16320675 的回答。我所能做的就是给你的评论点赞。