Java之路( 1 )----幫你完成HelloWorld

Java之路----幫你完成HelloWorld<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    轉眼在csdn已經滿月了,看到好多初學java的朋友會有關於錯誤提示Noclassdeffounderror………這樣的問題,想到自己初學的時候也曾被這種鬱悶的問題弄得焦頭爛額,很多問題是不會在教科書裏面有講的,因爲,教科書不會捕捉我們的“異常“:)。於是就整理了一下我見到的朋友們提出的問題,希望能對後來者有所幫助。

1.Java開發中系統環境變量設置(JDK):

工欲善其事,比先利其器。環境變量這一關,大家是必須要過的,下面是各種操作系統裏面的環境設定。

Win2000/winXP中:

右鍵我的電腦à屬性à高級à環境環境變量

classpath=.;jdk安裝目/lib

path=jdk安裝目錄/bin

注意:一定不可忽略“.”,他表示的是我們的當前工作目錄,沒有他,會有很多麻煩出現的。

Winme中:

“開始à程序à附件à系統工具à系統信息“中,選擇工具à系統配置實用程序à環境

設定:

classpath=.;jdk安裝目/lib

path=jdk安裝目錄/bin

Win98中:

修改autocexe.bat 就是修改自動批處理文件。

添加:

set classpath=.;jdk安裝目/lib

set path=jdk安裝目錄/bin;%path%

linuX中:

假設JDK安裝在/home/jdk1.4.0/下,打開/etc/profile,在其中加入:

PATH="/home/jdk1.4.0/bin:$PATH"

CLASSPATH=.:/home/jdk1.4.0/jre/lib/rt.jar:/home/jdk1.4.0/lib/tools.jar

JAVA_HOME=/home/jdk1.4.0

export PATH CLASSPATH JAVA_HOME

2.設定好了我們的工作環境後,讓我們來看一看我們的HelloWorld程序吧。

public Class HelloWorld {

   public void HelloWorld(){

        //構造函數

}

   public static void main ( String args[] )

   {

            system.out.println ("HelloWorld!");

   }

}

上面的程序有三處錯誤,看到了麼?不要笑哦,這種錯誤確實會發生的。下面是把它改正過後的代碼:

public class HelloWorld {

   public HelloWorld(){

        //構造函數

}

   public static void main ( String args[] )

   {

            System.out.println ("HelloWorld!");

   }

}

class和System的大小寫,這個問題雖然一般不會出現,但大小寫問題在整個java世界裏確實是值得重視的一個基本問題,所以我把它寫出來個大家提個醒,只要大家不用爲這樣的錯誤費時費力,大可認爲我只是爲了博您一笑。構造函數本來對HelloWorld來說是可有可無的,但是我有意添加這個構造函數,原因有兩個:第一,構造函數沒有返回值,大家都知道,就算是初學大概也會對此很不屑,1+1=2還拿出來幹嘛。但是確實有很多初學者會返回一個void,void也是一種返回值,這個概念就是我的第一個目的了,有些初學者會認爲void就是沒有返回值,錯!!!第二,你應該爲你的類編寫默認構造函數,就算他什麼也不做,只起到和系統給你的默認構造函數一樣的作用。當你不編寫默認構造函數的時候,系統會給你一個,但是前提是你這個類裏沒有任何構造函數。忽略這個問題,可能會讓你的繼承體系出現問題。(可能這裏說這些太早,所以教材上不會說,但這些東西,總是先記住的好,免得載大跟頭)。(順便說一句構造函數也可以是protected和private的,不是一定要public,別怪我蘑記^^。確實有很多人認爲構造函數一定要public的,錯!!!)。

3程序沒問題,環境變量沒問題,還是會出問題:)看看我們的執行要注意什麼吧

不帶包的編譯:

javac 類名.java

java 類名

不帶包的編譯只要注意大小寫,一般應該不會有問題了。

javac HelloWorld.java 不要寫成 javac helloworld.java

java HelloWorld 不要寫成java HelloWorld.class

另外,一般此時大家的工作目錄和HelloWorld.java所在目錄是相同的,這就是最開始環境變量”.”的作用了。

帶包的編譯:

javac -d  包的父目錄 類名.java

java  包名.類名

這裏要注意的是大家的工作目錄要與包的父目錄所在目錄相同。

 

還有另外一個問題,大家先看一下問題的提出(跟HelloWorld關係雖然不大,但是問題也很有代表性)

我的包如下:

package c05;

public class PackagedClass{

  public PackagedClass(){

         System.out.println("Creating a packaged class");

       }

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

}

 

程序如下:

//package c05;

import c05.PackagedClass;//如果換成import c05.*;就報錯

 

public class Foreign{

  public static void main(String[] args){

         PackagedClass pc = new PackagedClass();

}

}

PackagedClass不是c05的子包阿,就是一個類阿,爲什麼用* 不行那?

 

這是論壇裏一個朋友的問題。很鬱悶吧:)

 

這裏因爲要import c05.PackagedClass;的類和c05.PackagedClass;在同一個目錄內,就會出現上

 

面的問題,兩個類不要放同一個地方了,赫赫,大家自己解決吧^^.希望這篇文章會對初學的你有

 

所幫助,如果你遇到過跟”HelloWorld”有關的問題這裏沒有提及,也希望幫忙填補一下:)。

 

By 笑着 b[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章