發(fā)表時(shí)間: 2006-12-30 23:23 作者: phyan 來(lái)源: 悟天之路
QUOTE:
1、你的文件名對(duì)嗎?我按照上面的設(shè)置了還是不行,后來(lái)到安裝目錄下去看時(shí)發(fā)現(xiàn)不知怎么回事lib目錄下的dt.jar和tools.jar文件都不見(jiàn)了
JAVA要求你的文件和你的類(lèi)名嚴(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à),是不會(huì)錯(cuò)的。如果你用UltraEdit之類(lèi)的來(lái)寫(xiě)程序的話(huà),就一個(gè)字不要改的照抄吧!同時(shí)要注意大小寫(xiě)不要出錯(cuò)!
3、記住,javac后面跟的參數(shù)是文件名,但java 后面跟的是類(lèi)名!
這是我開(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ì)話(huà)框,在變量名(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!");
}
}
用記事本編輯后存為T(mén)est.java(文件名與類(lèi)名相同)文件,打開(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
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 ,然后回車(chē)
在Windows系統(tǒng)中,在DOS窗口提示符輸入 set ,然后回車(chē)
這樣,我們就可以看到系統(tǒng)當(dāng)中的所有環(huán)境變量,如果我們想看看單個(gè)變量的值呢?
在Linux/Unix系統(tǒng)上,在shell命令符輸入 echo $變量名 ,然后回車(chē)
在Windows系統(tǒng)中,在DOS窗口提示符輸入 set 變量 或者 echo %變量%,然后回車(chē)
如果要設(shè)置一個(gè)環(huán)境變量,可以用下面的命令:
在Linux/Unix系統(tǒng)上,在shell命令符輸入 export 變量名="變量值" ,然后回車(chē)
在Windows系統(tǒng)中,在DOS窗口提示符輸入 set 變量名="變量值" ,然后回車(chē)
這樣,就設(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)境變量值下加一些自己的值的話(huà),可以這樣:
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ě)好的類(lèi)時(shí),要讓java解釋器知道到哪里去找這個(gè)類(lèi)。通常,sun為我們提供了一些額外的豐富的類(lèi)包,一個(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è)分析。真正理解上面說(shuō)的環(huán)境變量設(shè)置的意義后,就可以任意設(shè)置啦:
JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,在這路徑下你應(yīng)該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁盤(pán)目錄,不過(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用戶(hù)很明白,WINDOWS用戶(hù)就很難理解(因?yàn)閃INDOWS默認(rèn)的搜索順序是先搜索當(dāng)前目錄的,再搜索系統(tǒng)目錄的,再搜索PATH環(huán)境變量設(shè)定的) ,所以如果喜歡盤(pán)根究底的朋友不妨研究一下LINUX。
為什么CLASSPATH后面指定了tools.jar這個(gè)具體文件?不指定行不行?顯然不行,行的話(huà)我還能這么羅索嘛!這個(gè)是由java語(yǔ)言的import機(jī)制和jar機(jī)制決定的,你可以查資料解決。
呵呵,具體的設(shè)定方法: win2k\xp用戶(hù)右鍵點(diǎn)擊我的電腦->屬性->高級(jí)->環(huán)境變量,修改下面系統(tǒng)變量那個(gè)框里的值就行了。
win9x用戶(hù)修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
就可以了。
QUOTE:
…………
問(wèn)題終于解決了,原因其實(shí)很簡(jiǎn)單:最近我也在學(xué)習(xí)XML,在學(xué)習(xí)XML的過(guò)程中曾經(jīng)安裝了一個(gè)用于查看XMl的軟件,而這個(gè)軟件在安裝的過(guò)程中,自己在我的用戶(hù)變量里設(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è)置,不知道在用戶(hù)變量里設(shè)置的CLASSPATH變量也可以!于是將自己在系統(tǒng)變量中設(shè)置的CLASSPATH變量刪掉,全部設(shè)到用戶(hù)變量的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è)盤(pán)上裝不同的版本,一個(gè)是中文版,一個(gè)是英文的Latest Release,一個(gè)是Stream Stable,反正是綠色安裝,也不會(huì)發(fā)生沖突,這樣通過(guò)對(duì)比便于了解和測(cè)試最新版本的先進(jìn)之處。另外注意一點(diǎn),上邊“**的用戶(hù)變量”是當(dāng)前用戶(hù)的環(huán)境變量,只有當(dāng)前用戶(hù)可用。下邊“系統(tǒng)變量”所有用戶(hù)都可以用。
但是假如把JDK版本從1.3升級(jí)到1.4,即JDK目錄名可能要從“j2sdk1.3”改為“j2sdk1.4”,如果是這樣的話(huà),那么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ì)于此類(lèi)問(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;
QUOTE:
Exception in thread "main" java.lang.NoClassDefFoundError: Helloworld (wrong nam另外看到網(wǎng)上兩個(gè)比較好的問(wèn)答:
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)
QUOTE:
Q: Applet 怎樣運(yùn)行?接下來(lái)開(kāi)始數(shù)據(jù)類(lèi)型學(xué)習(xí)了
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.sun.com 下載一個(gè)插件(java plug_in)
聯(lián)系客服