Java初學者往往對如何配置Java開發環境感到迷惑
論壇上也有很多朋友在詢問關於JDK配置的問題
特別是配置之後
編譯java文件的時候
總是碰到這樣一個問題
錯誤提示為
Microsoft Windows
[Version
]
(C) 版權所有
Microsoft Corp
C:\>javac HelloWorld
java
C:\>java HelloWorld
Exception in thread
main
java
lang
NoClassDefFoundError: HelloWorld
C:\>
以上為出錯信息
源程序如下:
class HelloWorld {
public static void main(String[] args) {
// Display
Hello World!
System
out
println(
Hello World!
);
}
}
譯通過 運行怎麼就Exception in thread
main
java
lang
NoClassDefFoundError: HelloWorld???????/
對於以上的問題
大家一貫的解決方法為
把HelloWorld
java文件所在目錄的路徑加入參數classpath中
如
set classpath=%classpath%;
;……(這裡要注意其中的
;
一會兒我們做個試驗看看到底是什麼意思)
我試過了
好像不行
不知道是不是我沒有配置好
至於給這個問題解答的網友有沒有具體實踐過
我不得而知
於是
我自己做了一次嘗試
我使用Win
+JDK
在下載j
sdk
_
_
win
exe
然後點擊安裝
安裝系統默認的路徑
安裝到c:盤
即
c:\jdk
安裝完成需要配置環境
這涉及到三個參數
path
classpath
java_home
在我的電腦-》屬性-》高級-》環境變量 中
分別添加這三個變量
他們的值分別為
名稱=值
java_home=c:\jdk
(安裝路徑)
classpath=
;C:\jdk
\lib\tools
jar;C:\jdk
\lib\dt
jar;C:\jdk
\bin;
path= C:\jdk
\bin;
然後確定就可以了
注解
classpath用於指明所有用於引用的類所在的目錄
它允許用戶把自己的類放在不同的目錄中
但應該讓JDK編譯工具知道它們在那裡
例如
set classpath=
;C:\jdk
\lib\tools
jar;C:\jdk
\lib\dt
jar;C:\jdk
\bin;
命令中的第一個圓點指明classpath當前的工作目錄
這個圓點非常有用
當不願意輸入完整的當前目錄路徑時
可以用它來代替
java程序允許這麼做
在d:新建子目錄java
編寫一個java文件
名字叫Hello
java
進入dos模式
進入到目錄d:\java
然後敲入javac Hello
java
編譯通過
然後可以使用java Hello運行生成的class文件
沒有問題
結果正常輸出
若是我們在Hello
java文件中的第一句加入
package hello;
然後編譯
沒有出現錯誤
運行時我們會看到如下錯誤信息
Exception in thread
main
java
lang
NoClassDefFoundError: Hello (wrong
hello/Hello)
at java
lang
ClassLoader
defineClass
(Native Method)
at java
lang
ClassLoader
defineClass(ClassLoader
java:
)
at java
security
SecureClassLoader
defineClass(SecureClassLoader
)
at
URLClassLoader
defineClass(URLClassLoader
java:
)
at
URLClassLoader
access
(URLClassLoader
java:
)
at
URLClassLoader
run(URLClassLoader
java:
)
at java
security
AccessController
doPrivileged(Native Method)
at
URLClassLoader
findClass(URLClassLoader
java:
)
at java
lang
ClassLoader
loadClass(ClassLoader
java:
)
at sun
misc
Launcher$AppClassLoader
loadClass(Launcher
java:
)
at java
lang
ClassLoader
loadClass(ClassLoader
java:
)
at java
lang
ClassLoader
loadClassInternal(ClassLoader
java:
)
這時
我們在編譯的時候
應該這樣
javac
d
Hello
java這樣會在當前目錄下產生一個新的子目錄
目錄名字就是hello
我們可以用一下兩種方法運行編譯好的文件
在當前目錄下
敲入
java hello/Hello或者java hello
Hello
這樣我們就可以看到運行結果了
From:http://tw.wingwit.com/Article/os/xtgl/201311/9412.html