我见过很多帖子,但我无法找到解决我具体问题的方法。我已经检查了如何从eclipse导出jar的参数,我确信包含main的类被检查为主类(在这个项目中只有一个类)。该程序在日食中运行良好。 我已经使用了一个bat文件尝试运行它,它读取(其中EDT2是jar的名称):
java -jar EDT2.jar
我查看了清单文件,内容如下:
Manifest-Version: 1.0
Sealed: true
Main-Class: EDTCompiler2
该文件的主要内容为:
public static void main(String[] args) throws IOException, InvalidFormatException {
错误和命令行调用如下所示:
http://s16.postimage.org/droox00sl/Untitled.png
我看到的另一个不寻常的事情是它为第53行提供了一个错误,这是来自外部库的对象声明类型。我在这个程序中使用apache POI for excel。
答案 0 :(得分:1)
您的主要课程必须是完全合格的名称。
换句话说,如果EDTCompiler2
位于package org.apache.whatever;
,那么您的JAR文件需要指定Main-Class
org.apache.whatever.EDTCompiler2
。
答案 1 :(得分:0)
Edwin的诊断是正确的:在主类的静态初始值设定项中,您正在加载另一个加载失败的类。抛出NoSuchMethodError并阻止加载主类。因此最后的错误消息。 缺少的方法表示在Eclipse中运行程序时以及在命令行上运行程序时使用的是不同版本的Apache POI库。
要解决此问题,您有两种选择: