2016-02-17 38 views
1

我一直在嘗試從命令行運行任何.class文件,並且不斷收到此錯誤。在我整個晚上試圖找出問題後,我正式陷入困境。Java命令行無法找到或加載主類

我在linux上,我通常使用eclipse,所以我的.java文件和.class文件位於兩個不同的位置。

繼承人的classpath ....

%> echo $CLASSPATH 
/home/mike/Documents/java 

繼承人我的.class目錄之一...

/home/mike/Documents/java/homework/bin/src 

繼承人相應的.java目錄...

/home/mike/Documents/java/homework/src/src 

下面是我在bash中輸入的內容...

[ mike (23:31:16): ~] $ >java homework.bin.src.EulerMath 

OR

[ mike (23:32:41): ~/Documents/java] $ >java -cp . homework.bin.src.EulerMath 

OR

[ mike (23:34:08): ~/Documents/java/homework/bin/src] $ >java -cp . EulerMath 

所有給我同樣的錯誤。顯然,我試圖運行包src中的EulerMath.class。這在eclipse中編譯和運行良好,並且我嘗試從命令行運行的每個其他程序都有類似的問題。我可以使用javac編譯.java文件,但是當試圖運行新的.class文件時,我得到這個錯誤。編號感謝所有幫助

+0

你編譯過.java文件嗎? – MadProgrammer

+0

是否在包中包含'EulerMath'(什麼是'EulerMath'的第一個非註釋行)?包名稱是Java中類的一部分。目錄結構不是沒有意義的。 –

+0

@MadProgrammer是,同時使用javac命令和eclipse ElliotFrisch是的,它上面如所述是在src包和包含在我的命令 – mike

回答

0

修改您CLASSPATH

export CLASSPATH="$HOME/Documents/java/homework/bin" 

,那麼你可以像

java src.EulerMath 

沒有-cp命令行運行它沒有設置CLASSPATH(或者,如果你想覆蓋集CLASSPATH)你可以做

java -cp $HOME/Documents/java/homework/bin src.EulerMath 

src.EulerMath是你的班級的名字。或者,你可以將它打包成一個帶有一些元信息的jar文件(基本上是Main-Class),並運行它java -jar <jarfile.jar>

+0

我已經修改在〜/ .bashrc,其中i改性我的PATH CLASSPATH以及。 CLASSPATH變量反映了這種變化。 – mike

+1

@mike請注意,我在這裏提供的CLASSPATH與你所說的類相匹配(即'src/EulerMath.class'在'/ home/mike/Documents/java/homework/bin'中)。你的問題說你把它設置爲'/ home/mike/Documents/java/homework/bin/src';注意區別。 –

0

我已經設法找到類(注意:不是運行它,我有一個新的錯誤但那是一個不同的故事)。希望這有助於別人

某處沿着這些步驟是固定的本身:

  • 確保CLASSPATH是否正確
  • 上的文件安裝的javac
  • 使用javac
  • 重新啓動計算機

現在應該工作

相關問題