2013-06-18 32 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 -"); 
    } 

運行此爲根(不要問),我不能這樣做,在Eclipse中,所以我徑自通過文件>導出> 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 

清楚地表明,java對待你spi_qa.jar參數作爲類包含一個SPI _ QA包,因爲裏面的main()方法(一類名爲罐子名稱點符號)。發生這種情況是因爲您使用的語法用於執行Java.class文件。

要執行jar使用

java -cp . -jar spi_qa.jar 

因爲,你已經使用Eclipse導出了罐,Manifest.mf細節必須已經由IDE照顧。如果仍然遇到錯誤,請檢查您的清單包含有Main-class屬性像

Main-class: spi_qa.Program 

要執行你的類明確(獨立MANIFEST.MF條目,或在其缺席)

java -cp spi_qa.jar spi_qa.Program 
0

命令來運行一個罐子Java的罐子jar文件

這應該可以幫助您運行jar文件,只要它在Main-Class正在Manifest文件中設置的情況下被正確打包。

編輯:java命令的其他選項仍然保持不變,如類路徑的cp。

此外,爲了確保您以root身份運行此文件,您是否嘗試過使用sudo從終端運行此文件?我認爲這實際上應該可以幫助你以root身份運行它。我不太確定,但如果它工作正常,你實際上可以避免所有這些jar文件的創建只是爲了運行這個程序。

0

您可以將您的主類添加到jar清單中,並可以直接執行jar。

相關問題