2012-02-18 228 views
1

我剛剛升級到最新的Java的Java 1.7.0_03錯誤:無法找到或加載主類

> java -version 
java version "1.7.0_03" 
Java(TM) SE Runtime Environment (build 1.7.0_03-b05) 
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode) 
> javac -version 
javac 1.7.0_03 
我有問題,在命令行中執行的Java程序

。例如:

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

我編譯它的命令行,然後嘗試執行它:

> javac Tester.java 
> java Tester 
Error: Could not find or load main class Tester 

這是一個錯誤?奇怪的是,我用Eclipse來執行程序沒有問題。

+0

是'默認包Tester'類?編譯後是當前目錄下的文件'Tester.class'? – millimoose 2012-02-18 18:39:13

+0

@Inerdial,_Tester_類完全如此處所示,沒有包引用。是的,_Tester.class_文件駐留在執行編譯和_java_ iteself的相同目錄中。 – MrRoth 2012-02-18 18:41:13

+2

不得不測試,完全相同的程序適用於我的版本。我唯一能想到的就是classpath包含'.' – 2012-02-18 18:50:01

回答

2

是否設置了CLASSPATH環境變量?當我做

export CLASSPATH=/tmp 
java Tester 

我得到一個NoClassDefFoundError的,雖然不是完全相同的錯誤消息,引述。

+0

''classpath''與這個問題無關。 – MrRoth 2012-02-18 18:48:59

+0

另一方面,當我在類路徑中沒有'.'時,我在Windows上使用相同的Java版本獲取完全相同的錯誤消息。 – 2012-02-18 18:59:05

+2

@MrRoth:確實如此。如果你設置了'CLASSPATH',它不包含'.'或者間接包含'.'的其他引用,你將會得到那個確切的錯誤。嘗試'在控制檯窗口中設置CLASSPATH =',如果它工作,那就是你的問題。 (我知道你使用Windows,因爲內部版本號在Linux/Solaris上不同) – mihi 2012-02-18 19:02:41

2

以控制檯模式運行jar文件。 java -jar filename.jar

0

我試圖運行Tomcat時發現同樣的錯誤,並意識到這是因爲我在32位系統上使用了64位版本的Tomcat。一旦我嘗試了32位版本,它的工作。

0

如果你想運行當前工作目錄中你的班級所在的程序。

java給出了三個選項。

第一個選項

java命令測試

當前工作目錄

java命令第二個選項。測試

第三種選擇出口CLASSPATH變量

出口CLASSPATH = $ CLASSPATH:。 (這是,如果你的目錄變化的最佳之一) 或

出口CLASSPATH = $ PWD

出口CLASSPATH =

之後,你必須SORCE的.bashrc中或bashprofile。

0

只設置在系統變量類路徑:

classpath=. 
相關問題