【问题标题】:Error: Could not find or load main class OpenJDK 1.7错误:无法找到或加载主类 OpenJDK 1.7
【发布时间】:2013-06-18 23:55:30
【问题描述】:

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

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

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

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 作为主类。这出口很好。但是,当我运行它时,我得到了这个:

[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]# 

【问题讨论】:

    标签: java eclipse centos


    【解决方案1】:

    错误

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

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

    要执行jar 使用

    java -cp . -jar spi_qa.jar
    

    既然您已经使用 Eclipse 导出了 Jar,那么Manifest.mf 的详细信息肯定已经由 IDE 处理了。如果您仍然遇到错误,请检查您的 Manifest 是否包含 Main-class 属性,例如

    Main-class: spi_qa.Program
    

    显式地执行你的类(独立于 manifest.mf 条目,或者在它不存在的情况下)

    java -cp spi_qa.jar spi_qa.Program
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        运行jar的命令是java -jar jarFile

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

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

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

        【讨论】:

          猜你喜欢
          • 2016-06-12
          • 2016-03-16
          • 2016-01-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多