2013-04-01 65 views
1

我是Java初學者。最近我使用Eclipse在Mac的建設項目,該項目下面的.class輸出在工作區中的bin文件夾:在MS窗口中執行.java

  • Main.class
  • MianWindow.class
  • PaintPanel.class ...

我可以exexute JFrame appl'n當我雙擊Main.Class文件在Mac PC的bin。

然而,當我在bin文件夾中複製所有的東西到窗口PC,並試圖以下命令來運行,它只是沒有執行它:使用

命令提示符:

C:\Program Files\Java\jre6\bin>java c:\temp\bin\Main.class 

錯誤味精:

Exeception in thread "main" java.land.NoClassDefFindError: c:\temp\bin\Main/class ...  

Could not find the main class...Program will exit. 

任何我在執行程序時錯過的步驟?

還有一個關於Java Applet的問題......如果我允許一個新客戶端的PC運行一個Java Applet,那麼每當有新客戶端時,我必須在客戶端PC上編譯Java項目運行Applet?

回答

3

您不需要指定Java應用程序的擴展名,即刪除.class

試試這個:java c:\temp\bin\Main

此外,如果你已經打包你的java文件,那麼它必須是第一個在包,然後運行。 說爲exampleif您已聲明類爲

package com.my.app; 

public class Main{ 
} 

,那麼你將在默認情況下,以一流的文件移動到com/my/app文件夾,然後運行作爲

java c:\temp\bin\com.my.app.Main 
0

Java命令不包括當前目錄classpath 。請按照以下步驟

  1. 打開命令提示符
  2. 轉到目錄中的所有類都編譯
  3. 執行java命令狀java -cp . Main

    我可以看到目錄下有三類(Main.classMianWindow.classPaintPanel.class)您必須將該目錄設置爲classpath

+0

好的。謝啦。我用C:\ Program Files \ Java \ jre6 \ bin> java -classpath c:\ temp \ bin Main ....運行它,但是我可以設置「。」作爲類路徑? –

+0

。意味着您的案例中的當前目錄已經將classpath目錄設置爲'c:\ temp \ bin'。並且您正在從C:\ Program Files \ Java \ jre6 \ bin執行java命令,因此不需要額外的設置。Java命令將嘗試在您設置爲'c:\ temp \ bin'的dırectory中查找Main類,因此它將是有效的和scuccess。 –

+0

另一種方法是將它作爲c:\ temp \ bin> java -classpath。主要 –

相關問題