JAVA版hello world全攻略 侯光敏 看到很多技術網站的BBS上面充斥著java初學者的關於運行第一個java程式的求助資訊,我覺得作為“過來人“很有寫這篇文章的必要,因為他們遇到的都是些很低級的問題,但是讓這些問題佔據bbs上那麼多寶貴的空間就太不應該了。 要搞清楚的基本概念 java是一種跨平台的網路語言,為了能夠在不同平台上運行,它使用了虛擬機器這個概念。尾碼名為java的檔案是原始碼檔案,它經過編譯後產生的是class檔案。虛擬機器執行的就是這些class檔案,將它們轉化成為不同平台能夠啟動並執行命令。這就是為什麼java的效率比較低的原因。也是因為這個原因,在java裡沒有其它語言的使用者熟悉的exe檔案的概念。 執行hello world的方法 切記:在命令列中輸入 javac 源檔案名稱.java (編譯) java 源檔案名稱 (執行,沒有尾碼) 這裡說的是java application,裡麵包括main函數。 如果hello world是applet版的,在命令列中輸入appletviewer 源檔案名稱 (已經編譯後的class檔案) 如果class檔案已經嵌入了html網頁中,直接用IE開啟就行了。 application經常出現的錯誤 系統提示Exception in thread "main " java.lang.NoClassDefFoundError。出現這個提示的原因可能有: 1 你把檔案名稱拼錯了,java對大小寫是敏感的。打錯了當然找不到檔案。 2 虛擬機器沒有找到必須的類庫。你可能沒有在autoexec.bat檔案中設定classpath。進入windows的運行,輸入sysedit,然後在autoexec.bat檔案中加入這麼一行:set classpath=你的jdk的安裝目錄/lib; 例如set classpath=c:/jdk1.3.0_02/lib; 儲存退出後,你要在dos視窗的c根目錄下執行一遍autoexec.bat檔案已保證被設定了,當然,如果你願意也可以重啟機器。 系統提示HelloWorld.java:1: Public class helloworld must be defined in a file called "HelloWorld.java ". public class helloworld{ ^ 一個Java來源程式中可以定義多個類,但是,具有public 屬性的類只能有一個,而且要與檔案名稱相一致。還有,main方法一定要放在這個public 的類之中,這樣才能運行這個類。 系統提示Exception in thread "main " java.lang.NoSuchMethodError: main 出現這個異常是因為你在抄書上的代碼時抄錯了。主函數一定要這麼寫:public static void main(String args[]) 一個字都不能錯,切記!!! applet常出現的錯誤 IE顯示了一個灰色的地區,但是上面沒有顯示hello world,狀態列顯示load:calss 你的class檔案名稱 no found 。出現這個問題是因為IE沒有找到applet(有點廢話),你應該把class檔案放在和html檔案相同的目錄下。如果class檔案在該檔案夾的子目錄下,那麼要這麼寫CODE= "子目錄名.檔案名稱.class "。 IE顯示applet已經啟動,但是還是只顯示灰色的一塊。這種問題在使用jBuilder等整合開發工具是最容易出現,用appletviewer就沒有問題。這是因為你在applet中使用了IE不支援的java版本。jBuilder在做applet是預設使用了swing組件,但是IE只支援jdk1.1,所以造成了這種情況。只要把匯入swing的語句去掉就行了,然後按照提示修改一下代碼,不要用swing組件的方法。如果你覺得swing組件很漂亮,打死都要用,那麼就裝一個java的plug-in這個東西在你裝jdk的高版本時就自動裝上了。看看你的控制面版中有沒有那個紅鼻子的小東西。但是切記,如果你要用它,那麼你的html的檔案的寫法就和從前不一樣了,不能簡單的用CODE來指明類了。至於怎麼寫,不在這篇文章的討論範圍內了(你寫一個hello world還要用plug-in就搞大了)。網上有很多文章講怎麼寫。 怎麼實現點擊就執行 用慣了點擊就執行的的exe檔案自然就很不習慣開啟dos視窗輸入命令列,你可以把它做成jar檔案,但是對hello world來說有點麻煩,有個簡單的傻辦法:自己做一個批次檔。例如:用記事本寫一個run.txt檔案,內容是:java 你的主檔案名 ,然後把尾碼改成bat存到和主檔案相同的目錄下。呵呵,雙擊就運行了,夠傻吧。 如果你非要用exe檔案運行,jet等工具可以把class檔案做成exe檔案。但是這樣也失去了java的跨平台性。 以上就是hello world的全攻略了,如果你還看不到“hello world“,我倒!你還是別學java了。 |