国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JDK配置問題

2019-11-17 06:25:27
字體:
來源:轉載
供稿:網友

  看到論壇上那么多人問關于JDK配置的問題,非凡是配置之后,編譯java文件的時候,總是碰到這樣一個問題,錯誤提示為:
=================================================================================================
Microsoft windows 2000 [Version 5.00.2195]
(C) 版權所有 1985-1998 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.}
}

編譯通過 運行怎么就Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld???????/
===================================================================================================

對于以上的問題,大家一貫的解決方法為,把HelloWorld.java文件所在目錄的路徑加入參數classpath中,如:set classpath=%classpath%;.;……(這里要注重其中的“.;”,一會兒我們做個試驗看看到底是什么意思)。我試過了,似乎不行,不知道是不是我沒有配置好。至于給這個問題解答的網友有沒有具體實踐過,我不得而知。于是,我自己做了一次嘗試。
我使用Win2000+JDK1.30,在java.sun.com下載j2sdk1_3_0-win.exe,然后點擊安裝,安裝系統默認的路徑,安裝到c:盤,即:c:jdk130。安裝完成需要配置環境,這涉及到三個參數:path、classpath、java_home。在我的電腦-》屬性-》高級-》環境變量 中,分別添加這三個變量,他們的值分別為:

name value
java_home c:jdk130
classpath .;C:jdk13lib ools.jar;C:jdk13libdt.jar;C:jdk13in;
path C:jdk13in;

然后確定就可以了。

注解:classpath用于指明所有用于引用的類所在的目錄,它答應用戶把自己的類放在不同的目錄中,但應該讓JDK編譯工具知道它們在那里。例如:set classpath=.;C:jdk13lib ools.jar;C:jdk13libdt.jar;C:jdk13in;命令中的第一個圓點指明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.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.
access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)

這時,我們在編譯的時候,應該這樣:javac -d . Hello.java
這樣會在當前目錄下產生一個新的子目錄,目錄名字就是hello。
我們可以用一下兩種方法運行編譯好的文件,在當前目錄下,敲入:java hello/Hello或者java hello.Hello ,這樣我們就可以看到運行結果了。

這里有個問題:若是進入目錄hello中,然后敲入:java Hello 運行,則會出現錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: Hello(wrong
hello/Hello)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)

和上面的錯誤信息一摸一樣,不知道該如何解決?大家幫忙看看,為什么進入目錄hello中之后,就不能運行編譯好的class文件。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绩溪县| 仁化县| 咸宁市| 肇州县| 阿克陶县| 铁岭市| 普宁市| 遂川县| 祁东县| 登封市| 富阳市| 岱山县| 长岛县| 翁牛特旗| 南城县| 无为县| 洪洞县| 通海县| 武城县| 娱乐| 巫溪县| 梅河口市| 成安县| 长垣县| 宜良县| 武清区| 新昌县| 洪泽县| 资兴市| 康马县| 丹凤县| 青海省| 通渭县| 精河县| 西昌市| 屏南县| 民丰县| 新邵县| 潞西市| 松阳县| 广丰县|