错误:无法找到或加载主类OpenJDK 1.7

时间:2013-06-18 15:33:06

标签: java eclipse centos

我已经看到这个问题了很多,我确实检查了其他问题,但没有一个回答似乎符合我的问题。

我是Java的新手,所以我可能做了一些愚蠢的事。我在CentOS 6.4和OpenJDK 1.7上使用Eclipse Juno Service Release 2.

我创建了一个Java项目,然后在/ src下创建了一个包“spi_qa”。然后我创建了一个名为Program.java的类和另一个TestCaseConfiguration.java。我希望程序的入口点是程序。这是代码的简化版本:

package spi_qa;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import au.com.bytecode.opencsv.*;

public class Program {
    static String configDirectory = "/spi/share/QA/conf";
    static String csvFile = "/spi/share/QA/csv/testcases.csv";

    public static void main(String[] args) {
        System.out.println("- Starting QA Test Suite -");
        // Some QA stuff
        System.out.println("- QA Test Suite completed -");
    }

以root身份运行它(不要问),我不能在Eclipse中这样做,所以我继续通过File> Export> Java>导出程序。 JAR文件,选择了我的“spi_qa”包及其中的所有文件,并选择spi_qa.Program作为Main类。出口很好。但是,当我运行它时,我得到了这个:

[root@localhost Downloads]# java -cp . spi_qa.jar 
Error: Could not find or load main class spi_qa.jar
[root@localhost Downloads]# 

我完全不知道那是怎么回事。

我查了一下,我有相应的:

[root@localhost Downloads]# java -version
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
[root@localhost Downloads]# 

3 个答案:

答案 0 :(得分:1)

错误

Error: Could not find or load main class spi_qa.jar

清楚地表明java将您的spi_qa.jar参数视为包含main()方法的类的名称( jar 中的一个类 spi _ qa 包,因为点符号)。发生这种情况是因为您使用的语法用于执行Java.class文件。

执行jar使用

java -cp . -jar spi_qa.jar

因为,您已使用Eclipse导出Jar,Manifest.mf详细信息必须由IDE处理。如果仍然遇到错误,请检查您的清单是否包含Main-class属性,如

Main-class: spi_qa.Program

明确执行您的类(独立于manifest.mf条目,或在缺席时)

java -cp spi_qa.jar spi_qa.Program

答案 1 :(得分:0)

运行jar的命令是 java -jar jarFile

这应该可以帮助你运行jar文件,前提是它已正确打包,并且在Manifest文件中设置了Main-Class。

编辑:java命令的其他选项仍然保持不变,例如cp for classpath。

另外,为了确保您以root身份运行此文件,您是否尝试使用sudo从终端运行此文件?我认为这实际上应该可以帮助您以root身份运行它。我不太确定,但如果它工作正常,你可以实际避免所有这些jar文件创建只是为了运行这个程序。

答案 2 :(得分:0)

您可以在jar清单中添加主类,并可以直接执行jar。