2013-06-18 4 views
0

이 질문을 많이 보았습니다. 다른 질문도 확인해 보았습니다. 아무런 응답도 내 문제와 일치하지 않는 것 같습니다.오류 : 메인 클래스를 찾지 못하거나로드하지 못했습니다. OpenJDK 1.7

저는 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 -"); 
    } 

내가 루트 (요구하지 않음)으로 이것을 실행이 , 나는 이클립스 내에서, 그래서가 앞서 갔다 할 수 없어 파일> 내보내기> Java> JAR 파일을 통해 프로그램을 내 보낸 다음 거기에있는 모든 "spi_qa"패키지와 모든 파일을 선택하고 spi_qa.Program을 Main 클래스로 선택했습니다. 이것은 잘 수출합니다.

[[email protected] Downloads]# java -cp . spi_qa.jar 
Error: Could not find or load main class spi_qa.jar 
[[email protected] Downloads]# 

을 그리고 나는 될 수있는 방법을 전혀 단서가 없다 : 나는 그것을 실행할 때,이 얻을.

내가 확인하고 내가 해당 한 :

[[email protected] 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) 
[[email protected] Downloads]# 

답변

1

오류가

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

명확하게 javaSPI _ 품질 보증 패키지 때문에 내부에 main() 방법 (클래스 이름 항아리를 포함하는 클래스의 이름으로 당신의 spi_qa.jar 인수를 처리 나타냅니다 점 표기법의). 이 구문은 사용 된 구문을 사용하여 Java.class 파일을 실행하기 때문에 발생합니다. 이클립스를 사용하여 항아리를 내 보낸 이래

Manifest.mf 세부 사항은 IDE에 의해 처리되어 있어야하는 jar 사용을

java -cp . -jar spi_qa.jar 

을 실행합니다.당신은 여전히 ​​오류가 발생하는 경우 매니페스트가 명시 적으로 (MANIFEST.MF 항목의 독립적 인, 또는없는 경우) 클래스를 실행하려면

Main-class: spi_qa.Program 

같은 Main-class 특성이 포함되어 있는지 확인

java -cp spi_qa.jar spi_qa.Program 
0

명령을 항아리를 실행하는 자바 -jar JarFile를이다.

Manifest 파일에 Main-Class가 설정되어있어 패키지가 제대로 제공되면 jar 파일을 실행하는 데 도움이됩니다.

편집 : java 명령의 다른 옵션은 classpath와 마찬가지로 cp와 동일하게 유지됩니다.

또한이 파일을 root로 실행하고 있는지 확인하려면 터미널에서 sudo를 사용하여이 파일을 실행 해 보았습니까? 나는 이것이 당신이 루트로서 그것을 실행하는 것을 실제로 도와야한다고 생각한다. 나는 정말로 잘 모르겠다. 그러나 그것이 잘 작동한다면,이 프로그램을 실행하기 위해 단지이 모든 jar 파일 생성을 피할 수있다.

0

메인 클래스를 jar 매니페스트에 추가하여 jar를 직접 실행할 수 있습니다.

관련 문제