Hello World!

對於Java初學者,經常都以“問一個最簡單的問題”開頭。說一句“你好”,真的是一個最簡單的問題嗎?
  好了,言歸正傳,let's say "HelloWorld!" in java...
  首先,我們要假設一下我們的平臺是Windows+JDK(Linux環境下也差不多)。這個環境
是相當普遍、基礎和入門的。確定已經正確安裝JDK了,如果沒有你可以從sun的官方網站
下載最新的版本(當然稍微老一點版本也無所謂,不過建議還是安裝1.4的,我用的是
j2sdk1.4.2),下一步是小心翼翼地敲入某本教程上的HelloWorld源碼:
// HelloWorld.java                                                                                                     
 public class HelloWorld {                                                                                             
     public static void main(String args[]) {                                                                          
         System.out.println("Hello World!");                                                                           
 }
存盤,然後編譯,javac ...問題來了:

* 錯誤 1:                                                                                                             
'javac' 不是內部或外部命令,也不是可運行的程序或批處理文件。
(javac: Command not found)
產生的原因是沒有設置好環境變量path。Win98下在autoexce.bat中加入path=%path%;
c:/j2sdk1.4.2/bin,Win2000下則控制面板->系統->高級->環境變量->系統變量...看到
了?雙擊Path,在後面加上c:/j2sdk1.4.2/bin。當然我們假設JDK安裝在c:/j2sdk1.4.2
目錄下,一般2000或者XP好像不要重啓系統。好,再試試!javac HelloWorld

 * 錯誤 2:                                                                                                            
HelloWorld is an invalid option or argument.
拜託,給點專業精神,java的源程序是一定要存成.java文件的,而且編譯時要寫全.java
呀。OK, javac HelloWorld.java (這回總該成了吧?)

 * 錯誤 3:                                                                                                            
HelloWorld.java:1: Public class helloworld must be defined in a file called
"HelloWorld.java".
public class helloworld{
             ^
這個問題嘛,是因爲你的類的名字與文件的名字不一致。準確地說,一個Java源程序中可
以定義多個類,但是,具有public屬性的類只能有一個,而且要與文件名相一致。還有,
main方法一定要放在這個public的類之中,這樣才能java(運行)這個類。另外一點是
Java語言裏面是嚴格區分大小寫的,初學者要注意呀。像上例中 helloworld 與
HelloWorld 就認爲是不一樣,因而...oh... 好,改好了,嘻嘻... javac
HelloWorld.java...(咦,怎麼什麼也沒有呀?)//faint 這就是編譯通過了!看看是不
是多了一個HelloWorld.class ?(hehe..按書上教的:)
java HelloWorld

 * 錯誤 4:                                                                                                            
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld呵呵,這個
嘛,就是著名的類路徑(classpath)問題啦。實際上,類路徑是在編譯過程就涉及的Java中
的概念。classpath就是指明去哪裏找用到的類,就這麼簡單。由於我們的HelloWorld沒用
到其它的(非java.lang包中的)類,所以編譯時沒遇到這個問題。運行時呢,就要指明你
的類在哪裏了。解決方法嘛,可以用下面的命令運行java -classpath . HelloWorld“.”
就代表當前目錄。當然這樣做有點麻煩,我們可以在環境變量中設置默認的classpath。方
法就照上述設置path那樣。將classpath設爲:classpath=.;c:/j2sdk1.4.2/lib/dt.jar;
c:/j2sdk1.4.2/lib/tools.jar 後面的兩個建議也設上,以後開發用的着。
java -classpath . HelloWorld(應該出來了吧)

 * 錯誤 5:                                                                                                            
Exception in thread "main" java.lang.NoSuchMethodError: main
 看看你的代碼,問題出在main方法的定義上,寫對地方了嗎,是這樣寫的嗎:
public static void main(String[] args) { //一個字都不要差,先別問爲什麼了...
對,包括大小寫!
java -classpath . HelloWorld (聽天由命了!)
Hello World!                                                                                                           
(faint!終於...)
所以說,無法運行HelloWorld 真的並不是一個“最簡單的問題”。

發佈了12 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章