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

worldblog發表於2007-12-13
Java之路( 1 )----幫你完成HelloWorld (轉)[@more@]

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


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


1.Java開發中環境變數設定():


工欲善其事,比先利其器。環境變數這一關,大家是必須要過的,下面是各種裡面的環境設定。


/中:


右鍵我的à屬性à高階à環境環境變數


classpath=.;jdk目lib


path=jdk安裝目錄bin


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


中:


“開始àà附件à系統工具à系統資訊“中,選擇工具à系統實用程式à環境


設定:


classpath=.;jdk安裝目lib


path=jdk安裝目錄bin


中:


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


新增:


set classpath=.;jdk安裝目lib


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


中:


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


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


CLASSPATH=.:/home/jdk1.4.0//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”有關的問題這裡沒有提及,也希望幫忙填補一下:)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章