發(fā)表時(shí)間: 2006-12-30 23:23 作者: phyan 來(lái)源: 悟天之路
25號(hào)從交大圖書(shū)館借了本《跨平臺(tái)程序設(shè)計(jì)語(yǔ)言-Java Cross-Platform Programming Language Java》(上海市教育委員會(huì) 組編,趙毅主編,,西安電子科技大學(xué)出版社),,開(kāi)始了我的Java學(xué)習(xí)之旅。 在這里寫(xiě)下我學(xué)習(xí)過(guò)程中的點(diǎn)滴困難與解決的過(guò)程,,以期對(duì)有同樣問(wèn)題的朋友有所幫助,。 本來(lái)打算從25號(hào)起就開(kāi)始寫(xiě),但是25號(hào)剛裝好論壇,,26號(hào)就臺(tái)灣地震了,,中美海底光纜中斷,我的這個(gè)服務(wù)器在美國(guó),,訪問(wèn)不了,,直到今天才恢復(fù),雖然還有點(diǎn)慢,,但是總算能上來(lái)了 趕緊補(bǔ)上前兩天的 學(xué)習(xí)一門從來(lái)都沒(méi)接觸過(guò)的語(yǔ)言最大的困難就在于不知從何下手,,往往一開(kāi)始就出現(xiàn)問(wèn)題卻不知道問(wèn)題在哪里。 我先認(rèn)真的看書(shū),,看完一章之后就按照書(shū)上的例子把代碼全部用記事本手工輸入,。初學(xué)的往往認(rèn)為樹(shù)上的例子簡(jiǎn)單,看懂了就過(guò)去了而不動(dòng)手自己把代碼寫(xiě)出來(lái)運(yùn)行一下,,等到后面復(fù)雜的時(shí)候就根本應(yīng)付不過(guò)來(lái)了,。這個(gè)時(shí)候也最好避孕藥用有代碼提示和自動(dòng)糾錯(cuò)的開(kāi)發(fā)工具,我裝了Eclipse,,很好用,,但是這里我想練手還是手寫(xiě)最好。我也是看了網(wǎng)上好多網(wǎng)友的文章,、忠告之后,,加上以前我學(xué)習(xí)php的經(jīng)驗(yàn)教訓(xùn),,這次就有意識(shí)的這么做了。 我手工輸入了HelloWorld( SUN官方網(wǎng)站上就以此為例的)最簡(jiǎn)單演示程序的源代碼 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } 保存為HelloWorld.java之后,,在DOS提示符下輸入javac HelloWorld.java 回車,,停頓了一下,沒(méi)有提示信息,,說(shuō)明沒(méi)有問(wèn)題了,,記得有人說(shuō)過(guò)在Dos下沒(méi)有消息就是好消息(一般發(fā)生錯(cuò)誤才有提示消息),檢查了一下HelloWorld.java所在的目錄下多了個(gè)HelloWorld.class文件,,說(shuō)明編譯成功,,然后輸入java HelloWorld 回車,出現(xiàn)了如下錯(cuò)誤信息: Exception in thread "main" java.lang.NoClassDefFoundError: 我仔細(xì)檢查并重復(fù)試了幾次也沒(méi)發(fā)現(xiàn)代碼有問(wèn)題,,就搜索了一下“Exception in thread "main" java.lang.NoClassDefFoundError:”,,發(fā)現(xiàn)這是java初學(xué)者的經(jīng)典錯(cuò)誤,我也不例外 找到了解決方法:
QUOTE:
1,、你的文件名對(duì)嗎,? JAVA要求你的文件和你的類名嚴(yán)格對(duì)應(yīng)的。 比如 public class HelloWorld{ ..... 那么文件名一定只能是HelloWorld.java,,看仔細(xì)了,!
2、你的程序中有main方法嗎,?參數(shù)什么的對(duì)嗎,? main方法的聲明應(yīng)該是這樣子的: public static void main(String[] args) 事實(shí)上如果你用開(kāi)發(fā)工具來(lái)做的話,是不會(huì)錯(cuò)的,。如果你用UltraEdit之類的來(lái)寫(xiě)程序的話,,就一個(gè)字不要改的照抄吧!同時(shí)要注意大小寫(xiě)不要出錯(cuò),!
3,、記住,,javac后面跟的參數(shù)是文件名,,但java 后面跟的是類名! 這是我開(kāi)始學(xué)JAVA是犯的錯(cuò),,java HelloWorld.class,,然后就報(bào)錯(cuò)。后來(lái)才弄明白,,應(yīng)該是java HelloWorld,。
4、設(shè)置了classpath等系統(tǒng)環(huán)境變量了嗎,?
QUOTE:
JDK/java環(huán)境變量的設(shè)置
1,,在Windows XP系統(tǒng)中,,假如我安裝JDk到目錄:C:\Program Files\Java\j2re1.4.2_13
2,在桌面上選中“我的電腦”,,在其上單擊鼠標(biāo)右鍵,,選屬性,高級(jí),,環(huán)境變量(在下面)
3,,在系統(tǒng)變量(S)欄點(diǎn)新建,出現(xiàn)新建系統(tǒng)變量對(duì)話框,,在變量名(N)中填上JAVA_HOME
變量值:C:\Program Files\Java\j2re1.4.2_13
4,,確定后在系統(tǒng)變量(S)欄再新建一個(gè)環(huán)境變量CLASSPATH 變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(開(kāi)頭的dot和;不能少)
5,確定后在系統(tǒng)變量(S)欄查找并選中變量為Path的選項(xiàng),,點(diǎn)編輯在變量值(V)的末尾添加:
JAVA_HOME%\bin 或者為值:C:\Program Files\Java\j2re1.4.2_13
如果沒(méi)有找到Path變量,,自己新建一個(gè)!
如果你不想每次運(yùn)行都要CMD到class所在目錄然后執(zhí)行java命令,,可以把所有的class文件放到統(tǒng)一的目錄組織下,,然后將此目錄也追加到classpath下。
測(cè)試代碼如下:
public class Test { public static void main(String[] args) { System.out.println("Hello World!"); } }
用記事本編輯后存為Test.java(文件名與類名相同)文件,,打開(kāi)命令行窗口,,
cd到文件所在目錄下:
javac Test.java //編譯命令
java Test //執(zhí)行程序
如果輸出為:Hello World! OK,配置完畢,否則,,重新檢查,。 總結(jié)如下:
安裝路徑:C:\Program Files\Java\j2re1.4.2_13
變量名:java_home 變量值:C:\Program Files\Java\j2re1.4.2_13
變量名:classpath 變量值: .;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar;
變量名:path 變量值:%java_home%\bin 我按照上面的設(shè)置了還是不行,后來(lái)到安裝目錄下去看時(shí)發(fā)現(xiàn)不知怎么回事lib目錄下的dt.jar和tools.jar文件都不見(jiàn)了 這種問(wèn)題可能遇到的人比較少吧,,不過(guò)到現(xiàn)在我還不明白那兩個(gè)文件怎么沒(méi)有了,,我沒(méi)有手動(dòng)刪過(guò)。 最后總算成功了,。
-
phyan (2006-12-31 01:09:08)
我覺(jué)得對(duì)環(huán)境變量的配置還是要仔細(xì)的學(xué)深入一點(diǎn),,又找了一些很好的資料貼下來(lái):
QUOTE:
背景知識(shí):環(huán)境變量介紹
環(huán)境變量是操作系統(tǒng)、應(yīng)用程序,、腳本程序等等的指明燈,,能夠告訴他們需要的資源在哪里。大多數(shù)的系統(tǒng)都有一些預(yù)先設(shè)置好的環(huán)境變量,,當(dāng)然,,我們也可以增加自己的環(huán)境變量。為了看看當(dāng)前系統(tǒng)的環(huán)境變量,,我們可以用如下的命令: 在Linux/Unix系統(tǒng)上,,在shell命令符輸入 env ,然后回車 在Windows系統(tǒng)中,,在DOS窗口提示符輸入 set ,,然后回車 這樣,,我們就可以看到系統(tǒng)當(dāng)中的所有環(huán)境變量,如果我們想看看單個(gè)變量的值呢,? 在Linux/Unix系統(tǒng)上,,在shell命令符輸入 echo $變量名 ,然后回車 在Windows系統(tǒng)中,,在DOS窗口提示符輸入 set 變量 或者 echo %變量%,,然后回車 如果要設(shè)置一個(gè)環(huán)境變量,可以用下面的命令: 在Linux/Unix系統(tǒng)上,,在shell命令符輸入 export 變量名="變量值" ,,然后回車 在Windows系統(tǒng)中,在DOS窗口提示符輸入 set 變量名="變量值" ,,然后回車 這樣,,就設(shè)置好了。path和classpath環(huán)境變量的值都是一些有順序的目錄列表,。告訴系統(tǒng)或者應(yīng)用程序到哪里去尋找它們需要的資源,。這個(gè)目錄列表是由一系列的分隔符分開(kāi)的,Linux/Unix系統(tǒng)下分隔符是冒號(hào)“:”,,windows系統(tǒng)中是分號(hào)“;”,。如果,我們想在某個(gè)已經(jīng)存在的環(huán)境變量值下加一些自己的值的話,,可以這樣: Linux/Unix系統(tǒng)下: export CLASSPATH=$CLASSPATH:/path/to/program Windows系統(tǒng)下: set CLASSPATH = %CLASSPATH%;c:\path\to\program =================================================== 要想方便的開(kāi)發(fā)和運(yùn)行Java應(yīng)用程序,,我們需要設(shè)置兩個(gè)環(huán)境變量,一個(gè)path一個(gè)classpath,。 設(shè)置好path變量,,使得我們能夠在系統(tǒng)中的任何地方運(yùn)行java應(yīng)用程序,比如javac,、java,、javah等等;這就要找到我們安裝JDK的目錄,,比如我們的JDK安裝在c:\JDK_1.4.2\目錄下,那么在c:\JDK_1.4.2\bin目錄下就是我們常用的java應(yīng)用程序,我們就需要把c:\JDK_1.4.2\bin這個(gè)目錄加到path環(huán)境變量里面,。 classpath環(huán)境變量,是當(dāng)我們?cè)陂_(kāi)發(fā)java程序時(shí)需要引用別人寫(xiě)好的類時(shí),,要讓java解釋器知道到哪里去找這個(gè)類,。通常,sun為我們提供了一些額外的豐富的類包,,一個(gè)是dt.jar,一個(gè)是tools.jar,,這兩個(gè)jar包都位于c:\JDK_1.4.2\lib目錄下,,所以通常我們都會(huì)把這兩個(gè)jar包加到我們的classpath環(huán)境變量中set classpath=.;c:\JDK_1.4.2\lib\tools.jar;c:\JDK_1.4.2\lib\dt.jar,。 注意對(duì)于jar包,在classpath中 需要跟上完整地文件路徑,,而不能僅僅跟一個(gè)目錄,。第一個(gè)路徑的點(diǎn)“.”,代表當(dāng)前目錄,,這樣當(dāng)我們運(yùn)行java AClass 的時(shí)候,,系統(tǒng)就會(huì)先在當(dāng)前目錄尋找AClass文件了。
QUOTE:
Windows下JAVA用到的環(huán)境變量主要有3個(gè),,JAVA_HOME,、CLASSPATH、PATH,。下面逐個(gè)分析,。 JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,,在這路徑下你應(yīng)該能夠找到bin,、lib等目錄。值得一提的是,,JDK的安裝路徑可以選擇任意磁盤目錄,,不過(guò)建議你放的目錄層次淺一點(diǎn),如果你放的目錄很深,,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx…… 那么,,下面的步驟和以后的應(yīng)用你都要受累了,呵呵,。設(shè)置方法: JAVA_HOME=x:\JDK_1.4.2 (注:這里是JDK文件夾的絕對(duì)路徑) PATH環(huán)境變量原來(lái)Windows里面就有,,你只需修改一下,使他指向JDK的bin目錄,,這樣你在控制臺(tái)下面編譯,、執(zhí)行程序時(shí)就不需要再鍵入一大串路徑了。設(shè)置方法是保留原來(lái)的PATH的內(nèi)容,,并在其中加上%JAVA_HOME%\bin(注,,如果你對(duì)DOS批處理不了解,你可能不明白%%引起來(lái)的內(nèi)容是什么意思,;其實(shí)這里是引用上一步設(shè)定好的環(huán)境變量JAVA_HOME,,你寫(xiě)成x:\JDK_1.4.2也是可以的;你可以打開(kāi)一個(gè)控制臺(tái)窗口,,輸入echo %JAVA_HOME%來(lái)看一下你的設(shè)置結(jié)果) : PATH=%JAVA_HOME%\bin;%PATH% 注:是增加,絕對(duì)不可刪除原有的數(shù)據(jù),并用";"隔開(kāi)你所加的路徑. 同樣,,%PATH%是引用以前你設(shè)置的PATH環(huán)境變量,你照抄以前的值就行了。 CLASSPATH環(huán)境變量我放在最后面,,是因?yàn)橐院竽愠霈F(xiàn)的莫名其妙的怪問(wèn)題80%以上都可能是由于CLASSPATH設(shè)置不對(duì)引起的,,所以要加倍小心才行。 CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar 首先要注意的是最前面的".\;",,如果你看不清,,我給你念念——句點(diǎn)反斜杠分號(hào)?!?font color="#0000ff">. ”代表 命令提示符的當(dāng)前目錄(它表示在當(dāng)前目錄里尋找class,。如果沒(méi)有這個(gè)點(diǎn),那么CLASSPATH就不知道去那里尋找HelloWorld.class,;把JDK中的lib子目錄,,以及其下的tools.jar設(shè)置到CLASSPATH中,才可以在運(yùn)行java程序時(shí)加載),,這個(gè)是告訴JDK,,搜索CLASS時(shí)先查找當(dāng)前目錄的CLASS文件——為什么這樣搞,這是由于LINUX的安全機(jī)制引起的,,LINUX用戶很明白,,WINDOWS用戶就很難理解(因?yàn)閃INDOWS默認(rèn)的搜索順序是先搜索當(dāng)前目錄的,再搜索系統(tǒng)目錄的,,再搜索PATH環(huán)境變量設(shè)定的) ,,所以如果喜歡盤根究底的朋友不妨研究一下LINUX。 為什么CLASSPATH后面指定了tools.jar這個(gè)具體文件,?不指定行不行,?顯然不行,行的話我還能這么羅索嘛,! 這個(gè)是由java語(yǔ)言的import機(jī)制和jar機(jī)制決定的,,你可以查資料解決。
呵呵,,具體的設(shè)定方法: win2k\xp用戶右鍵點(diǎn)擊我的電腦->屬性->高級(jí)->環(huán)境變量,,修改下面系統(tǒng)變量那個(gè)框里的值就行了。 win9x用戶修改autoexec.bat文件,,在其末尾加入: set JAVA_HOME=x:\JDK_1.4.2 set PATH=%JAVA_HOME%\bin;%PATH% set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar 就可以了,。 真正理解上面說(shuō)的環(huán)境變量設(shè)置的意義后,就可以任意設(shè)置啦: 如果你的jdk目錄為f:\jdk,那么就新建一個(gè)變量JAVA_HOME,值為f:\jdk,classpath前面添加.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 如果你想用自己的java包,,而那些包放在d:\mypackage文件夾中,,那么你可以在classpath后添加;d:\mypackage
QUOTE:
………… 問(wèn)題終于解決了,原因其實(shí)很簡(jiǎn)單:最近我也在學(xué)習(xí)XML,,在學(xué)習(xí)XML的過(guò)程中曾經(jīng)安裝了一個(gè)用于查看XMl的軟件,,而這個(gè)軟件在安裝的過(guò)程中,,自己在我的用戶變量里設(shè)置了一個(gè)CLASSPATH變量!就是因?yàn)檫@個(gè)小東西害我花了這么長(zhǎng)時(shí)間:(殺掉?。ê呛?,殺掉它還有點(diǎn)不忍心,,因?yàn)樗俏覍W(xué)習(xí)XML的好工具?。?其實(shí)這可能是我的一個(gè)誤區(qū),以前設(shè)置CLASSPATH變量時(shí)只知道在系統(tǒng)變量中設(shè)置,,不知道在用戶變量里設(shè)置的CLASSPATH變量也可以,!于是將自己在系統(tǒng)變量中設(shè)置的CLASSPATH變量刪掉,全部設(shè)到用戶變量的CLASSPATH變量里,!打開(kāi)DOS測(cè)試一切通過(guò),!
問(wèn)題總結(jié):或許這是我我們?cè)趯W(xué)習(xí)JAVA過(guò)程中常常碰到問(wèn)題,但在這里我要提醒大家的是,,以后在設(shè)置CLASSPATH變量時(shí),,千萬(wàn)要注意你以前安裝的軟件是不是自動(dòng)更改了你的系統(tǒng)變量,如果是那么你在設(shè)置的時(shí)候就要注意拉,,不要再犯我所犯的同樣錯(cuò)誤(關(guān)鍵是浪費(fèi)時(shí)間),!
QUOTE:
Java方面的軟件大部分是開(kāi)放源碼的,而且多數(shù)是綠色軟件,,只要解壓,,設(shè)置一下環(huán)境變量即可使用。由于軟件本身升級(jí)比較頻繁,,經(jīng)常需要重新設(shè)置使用的環(huán)境變量,,而且可以同時(shí)安裝同一軟件的不同版本(甚至是相同版本)。如eclipse可分別在F, G,H三個(gè)盤上裝不同的版本,,一個(gè)是中文版,,一個(gè)是英文的Latest Release,一個(gè)是Stream Stable,,反正是綠色安裝,,也不會(huì)發(fā)生沖突,這樣通過(guò)對(duì)比便于了解和測(cè)試最新版本的先進(jìn)之處,。 但是假如把JDK版本從1.3升級(jí)到1.4,,即JDK目錄名可能要從“j2sdk1.3”改為“j2sdk1.4”,如果是這樣的話,,那么eclipse 可能會(huì)無(wú)法再啟動(dòng)了(它要從環(huán)境變量中尋找JAVA_HOME變量,,而JAVA_HOME變量值已經(jīng)從“j2sdk1.3”改為“j2sdk1.4” 了)。 再談?wù)刯akarta-tomcat,,這個(gè)軟件升級(jí)比較頻繁,,如果你是結(jié)合eclipse來(lái)使用Tomcat的,,那么每次Tomcat升級(jí),可能都要在eclipse中重新設(shè)置一下Tomcat的安裝目錄,,是不是有些麻煩,? 對(duì)于此類問(wèn)題,解決的方法很簡(jiǎn)單,,只要把默認(rèn)的軟件安裝目錄名去掉版本號(hào)即可(如果擔(dān)心忘記版本號(hào),,只要在目錄中添加一個(gè)readme文件加以說(shuō)明即可)。同樣,,在環(huán)境變量設(shè)置中也不出現(xiàn)版本號(hào),,這樣,如果再需要升級(jí)軟件時(shí),,僅僅把新版軟件安裝在舊版軟件目錄即可,。其它一般都不需要再改動(dòng)了。 另外,,在環(huán)境變量設(shè)置中,,可以用%變量%代替變量值,如Path變量值可以這樣設(shè)置: %JAVA_HOME%\bin;%ANT_HOME%\bin; 另外注意一點(diǎn),,上邊“**的用戶變量”是當(dāng)前用戶的環(huán)境變量,,只有當(dāng)前用戶可用。下邊“系統(tǒng)變量”所有用戶都可以用,。 建議從 http://java.下載其Java Documentation,,這是Java幫助文檔。 以上資料大多是從 http://blog.csdn.net 的博客里找到并作了合理的編輯,,感謝這些朋友們,。
-
phyan (2006-12-31 02:57:24)
在編寫(xiě)源代碼時(shí),很多地方不能隨意書(shū)寫(xiě),,對(duì)初學(xué)者而言,,以下地方要特別注意: 1.中文和英文。 在源代碼中,,很少使用中文,,可以使用的只有兩個(gè)地方:一是在輸出語(yǔ)句的引號(hào)中,二是在注釋中,。 2.大小寫(xiě)敏感,。 Java源程序?qū)Υ笮?xiě)是非常敏感的,改變大小寫(xiě)將直接引起錯(cuò)誤,。 3.括號(hào),。 在Java源代碼中有三種括號(hào),即小括號(hào)(),、中括號(hào)[]和大括號(hào){},,三種括號(hào)適用于不同情況不能隨便替換,,也不能與中文的符號(hào)相混淆。 4.class文件名和相應(yīng)類的名必須一致,。如上面的HelloWorld必須使用HelloWorld.java作為文件名,,而且大小寫(xiě)要一致。不然運(yùn)行java Helloworld會(huì)出現(xiàn)如下錯(cuò)誤的:
QUOTE:
Exception in thread "main" java.lang.NoClassDefFoundError: Helloworld (wrong nam e: HelloWorld) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) 另外看到網(wǎng)上兩個(gè)比較好的問(wèn)答:
QUOTE:
Q: Applet 怎樣運(yùn)行,? A: 主要有兩種方法 1, JDK中的applet瀏覽器,。 2, IE瀏覽器 這兩種方法都要將Applet嵌入到 HTML 文件中,如 <applet code="MyApplet.class",width=200 height=150> </applet> 保存在和源文件同目錄下,,文件名為xxx.html,如果用JDK中 的applet瀏覽器看,,就在命令提示符下運(yùn)行 appletviewer xxx.heml 用IE看直接雙擊 html 文件即可
Q: 為什么用IE運(yùn)行Applet時(shí),,顯示的就是一片空白 A: IE本身并不支持Applet 的運(yùn)行,,要去 www.java. 下載一個(gè)插件(java plug_in) 接下來(lái)開(kāi)始數(shù)據(jù)類型學(xué)習(xí)了這個(gè)Light.java源程序是用來(lái)練習(xí)長(zhǎng)整型(long)的整數(shù)類型的,如果把其中的一些變量由long類型改為整型(int),,最后的運(yùn)算結(jié)果要出錯(cuò)的,,所以一定要定義合適的數(shù)據(jù)類型。 //Computer distance light travels using long variables. class Light{ public static void main(String args[]){ int lightspeed; long days; long seconds; long distance; //approximate speed of light in miles per second lightspeed = 186000; days = 1000; //specify number of days here seconds = days*24*60*60; //convert to seconds distance = lightspeed*seconds; //compute distance System.out.print("In "+days); System.out.print(" days light will travel about "); System.out.print(distance+" miles."); } } 編譯后運(yùn)行結(jié)果如下 In 1000 days light will travel about 16070400000000 miles.
-
phyan (2007-1-01 22:22:43)
下面的程序是用雙精度浮點(diǎn)型變量計(jì)算一個(gè)圓的面積: //Computer the area of a circle. class Area{ public static void main(String args[]){ double pi,r,a; r=10.8; //radius of circle pi=3.1416;//pi, approxiately a=pi*r*r;//compute area System.out.println("Area of circle is "+a); } } 執(zhí)行結(jié)果是:Area of circle is 366.436224 這里做了兩點(diǎn)測(cè)試: 1.public static void main(String args[]){語(yǔ)句中main和括號(hào)之間有無(wú)空格都沒(méi)問(wèn)題,,和行末的大括號(hào)之間有無(wú)空格也無(wú)所謂,,接下來(lái)的語(yǔ)句中等號(hào)、乘號(hào)及句末分號(hào)前后空格有無(wú)也不影響程序執(zhí)行,??偨Y(jié)如下,java對(duì)程序代碼中的空格不敏感,。 2.類的名稱把首字母大寫(xiě)改為小寫(xiě)也可以,;編譯產(chǎn)生的擴(kuò)展名為class的文件名和程序中的類名是嚴(yán)格一致的。無(wú)論文件名是Area.java或area.java,,javac area.java和javac Area.java均可以正確編譯,,但是java Area.java和java area.java是不一樣的,這個(gè)一定要嚴(yán)格和xxxx.class一致,,否則要出錯(cuò),。如果不一致會(huì)產(chǎn)生如下錯(cuò)誤信息: Exception in thread "main" java.lang.NoClassDefFoundError: area (wrong name: Area) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)
-
phyan (2007-4-11 09:30:48)
|