无法使用main方法运行已编译的java文件

时间:2014-05-28 08:43:41

标签: java maven

我有一个应用程序,我尝试使用Maven构建。我可以构建一个jar,但运行它什么都不做:它找不到Main类。然而,我在POM中设置了MainClass。当我尝试从命令行运行目标文件夹中的MainPane.class时返回: “错误:无法找到或加载Main class MainPane”。 (在目标文件夹内导航并运行'java MainPane')

之后

我可以从Eclipse运行这个类,它有一个主方法:

public static void main(String[] args) {
        System.out.println("test");
}

我应该能够在目标文件夹中运行类文件吗?什么可能出错?

3 个答案:

答案 0 :(得分:1)

您需要通过定义-classpath参数

来告诉java类的位置
java -classpath classes MainPane

或从项目目录

java -classpath target/classes MainPane

如果您有一个

,还要确保使用完整的包名
java -classpath target/classes my.package.name.MainPane

@AndyGeeDe

TomEE treibt Tomitribe! | http://tomee.apache.org

答案 1 :(得分:1)

java -jar myjar.jar

只有在jar的清单包含" Main-Class:classname"条目。检查一下。如果它不存在,那么您仍然可以通过以下命令运行应用程序:

java -cp ./my.jar package/class_name

答案 2 :(得分:0)

尝试使用Google搜索“maven executable jar”。一旦您获得正确的构建,您可以使用

运行它

java -jar myjar.jar

Java并不是非常擅长这一点。可执行jar需要解压缩所有相关的jar,并包含一个名为main类的清单文件。在我看来,它不是优雅的,但确实有效。