發(fā)表時間: 2006-12-30 23:23 作者: phyan 來源: 悟天之路
QUOTE:
1、你的文件名對嗎?我按照上面的設置了還是不行,后來到安裝目錄下去看時發(fā)現(xiàn)不知怎么回事lib目錄下的dt.jar和tools.jar文件都不見了
JAVA要求你的文件和你的類名嚴格對應的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔細了!
2、你的程序中有main方法嗎?參數(shù)什么的對嗎?
main方法的聲明應該是這樣子的:
public static void main(String[] args)
事實上如果你用開發(fā)工具來做的話,是不會錯的。如果你用UltraEdit之類的來寫程序的話,就一個字不要改的照抄吧!同時要注意大小寫不要出錯!
3、記住,javac后面跟的參數(shù)是文件名,但java 后面跟的是類名!
這是我開始學JAVA是犯的錯,java HelloWorld.class,然后就報錯。后來才弄明白,應該是java HelloWorld。
4、設置了classpath等系統(tǒng)環(huán)境變量了嗎?QUOTE:
JDK/java環(huán)境變量的設置
1,在Windows XP系統(tǒng)中,假如我安裝JDk到目錄:C:\Program Files\Java\j2re1.4.2_13
2,在桌面上選中“我的電腦”,在其上單擊鼠標右鍵,選屬性,高級,環(huán)境變量(在下面)
3,在系統(tǒng)變量(S)欄點新建,出現(xiàn)新建系統(tǒng)變量對話框,在變量名(N)中填上JAVA_HOME
變量值:C:\Program Files\Java\j2re1.4.2_13
4,確定后在系統(tǒng)變量(S)欄再新建一個環(huán)境變量CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(開頭的dot和;不能少)
5,確定后在系統(tǒng)變量(S)欄查找并選中變量為Path的選項,點編輯在變量值(V)的末尾添加:
JAVA_HOME%\bin 或者為值:C:\Program Files\Java\j2re1.4.2_13
如果沒有找到Path變量,自己新建一個!
如果你不想每次運行都要CMD到class所在目錄然后執(zhí)行java命令,可以把所有的class文件放到統(tǒng)一的目錄組織下,然后將此目錄也追加到classpath下。
測試代碼如下:
public class Test
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
用記事本編輯后存為Test.java(文件名與類名相同)文件,打開命令行窗口,
cd到文件所在目錄下:
javac Test.java //編譯命令
java Test //執(zhí)行程序
如果輸出為:Hello World! OK,配置完畢,否則,重新檢查。
總結如下:
安裝路徑: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:
背景知識:環(huán)境變量介紹
環(huán)境變量是操作系統(tǒng)、應用程序、腳本程序等等的指明燈,能夠告訴他們需要的資源在哪里。大多數(shù)的系統(tǒng)都有一些預先設置好的環(huán)境變量,當然,我們也可以增加自己的環(huán)境變量。為了看看當前系統(tǒng)的環(huán)境變量,我們可以用如下的命令:
在Linux/Unix系統(tǒng)上,在shell命令符輸入 env ,然后回車
在Windows系統(tǒng)中,在DOS窗口提示符輸入 set ,然后回車
這樣,我們就可以看到系統(tǒng)當中的所有環(huán)境變量,如果我們想看看單個變量的值呢?
在Linux/Unix系統(tǒng)上,在shell命令符輸入 echo $變量名 ,然后回車
在Windows系統(tǒng)中,在DOS窗口提示符輸入 set 變量 或者 echo %變量%,然后回車
如果要設置一個環(huán)境變量,可以用下面的命令:
在Linux/Unix系統(tǒng)上,在shell命令符輸入 export 變量名="變量值" ,然后回車
在Windows系統(tǒng)中,在DOS窗口提示符輸入 set 變量名="變量值" ,然后回車
這樣,就設置好了。path和classpath環(huán)境變量的值都是一些有順序的目錄列表。告訴系統(tǒng)或者應用程序到哪里去尋找它們需要的資源。這個目錄列表是由一系列的分隔符分開的,Linux/Unix系統(tǒng)下分隔符是冒號“:”,windows系統(tǒng)中是分號“;”。如果,我們想在某個已經(jīng)存在的環(huán)境變量值下加一些自己的值的話,可以這樣:
Linux/Unix系統(tǒng)下: export CLASSPATH=$CLASSPATH:/path/to/program
Windows系統(tǒng)下: set CLASSPATH = %CLASSPATH%;c:\path\to\program
===================================================
要想方便的開發(fā)和運行Java應用程序,我們需要設置兩個環(huán)境變量,一個path一個classpath。
設置好path變量,使得我們能夠在系統(tǒng)中的任何地方運行java應用程序,比如javac、java、javah等等;這就要找到我們安裝JDK的目錄,比如我們的JDK安裝在c:\JDK_1.4.2\目錄下,那么在c:\JDK_1.4.2\bin目錄下就是我們常用的java應用程序,我們就需要把c:\JDK_1.4.2\bin這個目錄加到path環(huán)境變量里面。
classpath環(huán)境變量,是當我們在開發(fā)java程序時需要引用別人寫好的類時,要讓java解釋器知道到哪里去找這個類。通常,sun為我們提供了一些額外的豐富的類包,一個是dt.jar,一個是tools.jar,這兩個jar包都位于c:\JDK_1.4.2\lib目錄下,所以通常我們都會把這兩個jar包加到我們的classpath環(huán)境變量中set classpath=.;c:\JDK_1.4.2\lib\tools.jar;c:\JDK_1.4.2\lib\dt.jar。 注意對于jar包,在classpath中
需要跟上完整地文件路徑,而不能僅僅跟一個目錄。第一個路徑的點“.”,代表當前目錄,這樣當我們運行java AClass
的時候,系統(tǒng)就會先在當前目錄尋找AClass文件了。
QUOTE:
Windows下JAVA用到的環(huán)境變量主要有3個,JAVA_HOME、CLASSPATH、PATH。下面逐個分析。真正理解上面說的環(huán)境變量設置的意義后,就可以任意設置啦:
JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁盤目錄,不過建議你放的目錄層次淺一點,如果你放的目錄很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那么,下面的步驟和以后的應用你都要受累了,呵呵。設置方法:
JAVA_HOME=x:\JDK_1.4.2 (注:這里是JDK文件夾的絕對路徑)
PATH環(huán)境變量原來Windows里面就有,你只需修改一下,使他指向JDK的bin目錄,這樣你在控制臺下面編譯、執(zhí)行程序時就不需要再鍵入一大串路徑了。設置方法是保留原來的PATH的內(nèi)容,并在其中加上%JAVA_HOME%\bin(注,如果你對DOS批處理不了解,你可能不明白%%引起來的內(nèi)容是什么意思;其實這里是引用上一步設定好的環(huán)境變量JAVA_HOME,你寫成x:\JDK_1.4.2也是可以的;你可以打開一個控制臺窗口,輸入echo %JAVA_HOME%來看一下你的設置結果) :
PATH=%JAVA_HOME%\bin;%PATH%
注:是增加,絕對不可刪除原有的數(shù)據(jù),并用";"隔開你所加的路徑.
同樣,%PATH%是引用以前你設置的PATH環(huán)境變量,你照抄以前的值就行了。
CLASSPATH環(huán)境變量我放在最后面,是因為以后你出現(xiàn)的莫名其妙的怪問題80%以上都可能是由于CLASSPATH設置不對引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我給你念念——句點反斜杠分號。“. ”代表 命令提示符的當前目錄(它表示在當前目錄里尋找class。如果沒有這個點,那么CLASSPATH就不知道去那里尋找HelloWorld.class;把JDK中的lib子目錄,以及其下的tools.jar設置到CLASSPATH中,才可以在運行java程序時加載),這個是告訴JDK,搜索CLASS時先查找當前目錄的CLASS文件——為什么這樣搞,這是由于LINUX的安全機制引起的,LINUX用戶很明白,WINDOWS用戶就很難理解(因為WINDOWS默認的搜索順序是先搜索當前目錄的,再搜索系統(tǒng)目錄的,再搜索PATH環(huán)境變量設定的) ,所以如果喜歡盤根究底的朋友不妨研究一下LINUX。
為什么CLASSPATH后面指定了tools.jar這個具體文件?不指定行不行?顯然不行,行的話我還能這么羅索嘛! 這個是由java語言的import機制和jar機制決定的,你可以查資料解決。
呵呵,具體的設定方法: win2k\xp用戶右鍵點擊我的電腦->屬性->高級->環(huán)境變量,修改下面系統(tǒng)變量那個框里的值就行了。
win9x用戶修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
就可以了。
QUOTE:
…………
問題終于解決了,原因其實很簡單:最近我也在學習XML,在學習XML的過程中曾經(jīng)安裝了一個用于查看XMl的軟件,而這個軟件在安裝的過程中,自己在我的用戶變量里設置了一個CLASSPATH變量!就是因為這個小東西害我花了這么長時間:(殺掉!(呵呵,殺掉它還有點不忍心,因為它是我學習XML的好工具?。?其實這可能是我的一個誤區(qū),以前設置CLASSPATH變量時只知道在系統(tǒng)變量中設置,不知道在用戶變量里設置的CLASSPATH變量也可以!于是將自己在系統(tǒng)變量中設置的CLASSPATH變量刪掉,全部設到用戶變量的CLASSPATH變量里!打開DOS測試一切通過!
問題總結:或許這是我我們在學習JAVA過程中常常碰到問題,但在這里我要提醒大家的是,以后在設置CLASSPATH變量時,千萬要注意你以前安裝的軟件是不是自動更改了你的系統(tǒng)變量,如果是那么你在設置的時候就要注意拉,不要再犯我所犯的同樣錯誤(關鍵是浪費時間)!
QUOTE:
Java方面的軟件大部分是開放源碼的,而且多數(shù)是綠色軟件,只要解壓,設置一下環(huán)境變量即可使用。由于軟件本身升級比較頻繁,經(jīng)常需要重新設置使用的環(huán)境變量,而且可以同時安裝同一軟件的不同版本(甚至是相同版本)。如eclipse可分別在F, G,H三個盤上裝不同的版本,一個是中文版,一個是英文的Latest Release,一個是Stream Stable,反正是綠色安裝,也不會發(fā)生沖突,這樣通過對比便于了解和測試最新版本的先進之處。另外注意一點,上邊“**的用戶變量”是當前用戶的環(huán)境變量,只有當前用戶可用。下邊“系統(tǒng)變量”所有用戶都可以用。
但是假如把JDK版本從1.3升級到1.4,即JDK目錄名可能要從“j2sdk1.3”改為“j2sdk1.4”,如果是這樣的話,那么eclipse 可能會無法再啟動了(它要從環(huán)境變量中尋找JAVA_HOME變量,而JAVA_HOME變量值已經(jīng)從“j2sdk1.3”改為“j2sdk1.4” 了)。
再談談jakarta-tomcat,這個軟件升級比較頻繁,如果你是結合eclipse來使用Tomcat的,那么每次Tomcat升級,可能都要在eclipse中重新設置一下Tomcat的安裝目錄,是不是有些麻煩?
對于此類問題,解決的方法很簡單,只要把默認的軟件安裝目錄名去掉版本號即可(如果擔心忘記版本號,只要在目錄中添加一個readme文件加以說明即可)。同樣,在環(huán)境變量設置中也不出現(xiàn)版本號,這樣,如果再需要升級軟件時,僅僅把新版軟件安裝在舊版軟件目錄即可。其它一般都不需要再改動了。
另外,在環(huán)境變量設置中,可以用%變量%代替變量值,如Path變量值可以這樣設置: %JAVA_HOME%\bin;%ANT_HOME%\bin;
QUOTE:
Exception in thread "main" java.lang.NoClassDefFoundError: Helloworld (wrong nam另外看到網(wǎng)上兩個比較好的問答:
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 怎樣運行?接下來開始數(shù)據(jù)類型學習了
A: 主要有兩種方法
1, JDK中的applet瀏覽器。
2, IE瀏覽器
這兩種方法都要將Applet嵌入到 HTML 文件中,如
<applet code="MyApplet.class",width=200 height=150>
</applet>
保存在和源文件同目錄下,文件名為xxx.html,如果用JDK中
的applet瀏覽器看,就在命令提示符下運行
appletviewer xxx.heml
用IE看直接雙擊 html 文件即可
Q: 為什么用IE運行Applet時,顯示的就是一片空白
A: IE本身并不支持Applet 的運行,要去 www.java.sun.com 下載一個插件(java plug_in)
聯(lián)系客服