2010-11-11 111 views
3

我正在學習java,我想知道如何從其他目錄編譯java程序。如何從目錄編譯java程序?

例如,我的編譯器是在我的硬盤c:\,我想從驅動e:\

編譯我的Java程序我應該怎樣做呢? 我收到這個錯誤,這是什麼意思? alt text

+0

你在你的代碼中使用包......因此,它顯示的NoClassDefFoundError當你運行你應該創建包含您的包名的文件夾.. .compile that java file ...並且你可以從該java文件目錄的前一個目錄運行該文件... 例如,你的代碼是 package test; 類別作業public static void main(String args []){ System.out.println(「Hai」); } } 它救了這條道路上的「E:\ java的\測試」 編譯這個文件,你可以運行這個路徑文件「E:\ Java」的 命令來運行這個文件 Java測試。評語 E:\ java> java test.Assignment – Kandha 2010-11-11 04:59:37

回答

2

當前目錄應該在默認的CLASSPATH中,但可能不是。嘗試java -cp . Assignment

0

自從我完成java以來​​已經有一段時間了,但編譯看起來並不是你的問題。由於javac正確返回,因此Assignment.java似乎是個問題。你的Assignment班有一個主要方法嗎?

+0

好吧......你是對的,先生:)謝謝。 – yonan2236 2010-11-11 04:57:38

+0

很高興我能幫到你。你解決了你的問題嗎? – 2010-11-11 12:42:37

0

那麼簡單的方法是設置你的類路徑變量。因爲從屏幕截圖看來你使用Windows我建議你右鍵點擊我的電腦nd選擇屬性。轉到高級設置並單擊環境變量選項卡。

然後彈出一個新窗口,底部有系統變量。選擇新建並創建一個變量 JAVA_HOME =路徑其中你安裝的Java例如我的它c:\ java

現在,一旦你添加這個搜索一個現有的變量路徑,並選擇編輯。現在在最後添加以下內容:%JAVA_HOME%\ bin 現在你已經完成了u cn運行java程序frm在ya comp上的任何位置....

0

你在代碼中使用包...所以它顯示NoClassDefFoundError當您運行 你應該創建包含您的包名的文件夾...編譯Java文件...你可以運行從Java文件目錄的以前目錄文件...

例如你的代碼是

package test; 
class Assignment{ 
public static void main(String args[]){ 
System.out.println("Hai"); 
} 
} 

它保存在這條路上「E:\java\test

編譯這個文件,您可以運行此路徑「E:\java

命令此文件來運行這個文件

java test.Assignment 

E:\java> java test.Assignment 
0

是否有package聲明在你Assignment.java的頂部?如果是這樣,請將其刪除並重新編譯以進行快速修復。

要使用Java包,您需要一個與包聲明相匹配的目錄結構。

例如,說這是你Assignment.java:

package myjava; 

public class Assignment { 
    public static void main(String[] args) { 
    .... 
    .... 
} 

運行此命令編譯:

E:\java>javac -d . Assignment.java 

,你會得到米亞瓦\ Assignment.class如果一切順利。 -d .選項表示「將生成的類文件放置在當前目錄中」。 javac爲您創建包層次結構作爲目錄。

現在,您的目錄匹配您的包裹,這應該工作:

E:\java>java myjava.Assignment