Main类不在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 srcSomething.class Something.jar src*.class
我得到以下错误:
Error: Could not find or load main class srcSomething.class
Caused by: java.lang.ClassNotFoundException: srcSomething.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
以下是整个项目的开始类。
public class Something {
public static void main(String[] args) {
IDiffPresenter presenter = new DiffPresenter();
}
}
我该怎么解决这个问题?
答案最初被忽略了。
CCD_ 1是关键成分。
javac Something.java
jar -cvef Something Something.jar *.class
java -jar Something.jar
感谢用户16320675的回答。我所能做的就是支持你的评论。