當(dāng)前位置:首頁>>開發(fā)編程>>JAVA>>新聞內(nèi)容
HelloWorld常見問題
作者: 發(fā)布時(shí)間:2003-10-7 14:32:42 文章來源:

不含包層次的HelloWorld.java


public class HelloWorld
{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}


保存在E:\java\src下,使用javac命令編譯:
E:\java\src>javac HelloWorld.java
運(yùn)行:
E:\java\src>java HelloWorld
屏幕打印出:
Hello World!

初學(xué)者常犯的錯(cuò)誤


  • 1. 運(yùn)行時(shí),帶了.class后綴
    如果你試圖使用如下命令:
    E:\java\src>java HelloWorld.class
    系統(tǒng)會(huì)誤認(rèn)為你運(yùn)行的是HelloWorld包下的名為class的類文件,會(huì)到系統(tǒng)的CLASSPATH下(一般都包括當(dāng)前目錄)企圖尋找HelloWorld.class.class這樣的類,這樣的類當(dāng)然不存在了;并且也不可能存在,因?yàn)閏lass是關(guān)鍵字,不能作為一個(gè)類的名字。所以會(huì)報(bào)如下錯(cuò)誤信息:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
  • 2. 文件名大小寫錯(cuò)誤
    對于像Windows這樣的系統(tǒng),編譯時(shí)可以不關(guān)心大小寫。比如編譯HelloWorld.java時(shí),也可以使用:
    E:\java\src>javac helloworld.java
    也可以編譯通過,但產(chǎn)生的類文件仍然是和源文件相符的:HelloWorld.class。
    但在運(yùn)行時(shí)一定要注意大小寫,比如試圖使用如下命令運(yùn)行:
    E:\java\src>java helloworld
    將報(bào)類似于1中的錯(cuò)誤:
    Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong name: HelloWorld)

包含包層次的HelloWorld.java

比如上面的HelloWorld.java修改如下:
package org.javaresearch;
public class HelloWorld
{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

編譯時(shí)有兩種方法
  • 1. 直接編譯
    E:\java\src>javac HelloWorld.java
    此時(shí)在當(dāng)前目錄下輸出HelloWorld.class。此時(shí),運(yùn)行不能使用上面相同的方法,使用:
    E:\java\src>java HelloWorld
    運(yùn)行時(shí),出現(xiàn)如下錯(cuò)誤:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
    從上述錯(cuò)誤信息你也可以看到,系統(tǒng)可以找到HelloWorld類(因?yàn)楫?dāng)前路徑包含在CLASSPATH中,具體為什么會(huì)提示wrong name,有興趣的朋友參見Java語言規(guī)范),但這個(gè)類屬于org.javaresearch包。所以,你要做的就是按照上述包層次,相應(yīng)的創(chuàng)建目錄層次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目錄下。運(yùn)行:
    E:\java\src >java org.javaresearch.HelloWorld
    系統(tǒng)打印出:
    Hello World!
    這兒要注意的是,不能使用java org\javaresearch\HelloWorld來運(yùn)行,此時(shí)同樣會(huì)出現(xiàn)如下錯(cuò)誤:
    Exception in thread "main" java.lang.NoClassDefFoundError:org\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)
    哈哈,是不是有點(diǎn)怪怪的,那沒辦法。以后對Java的包有更深的認(rèn)識(shí)時(shí),就會(huì)明白了。
  • 2. 使用 -d <directory>編譯選項(xiàng)
    是不是覺得上面的編譯方法有點(diǎn)麻煩,能不能自動(dòng)在當(dāng)前路徑(或任意指定的路徑)下生成包層次呢?有!使用-d <directory>編譯選項(xiàng)就能做到。
    E:\java\src >javac -d . HelloWorld.java
    此時(shí),在當(dāng)前目錄下就生成了一個(gè)org\javaresearch目錄,并且輸出的.class文件也在里面。運(yùn)行:
    E:\java\src >java org.javaresearch.HelloWorld
    系統(tǒng)打。篐ello World!
    如果你想把生成的類文件集中存放在一個(gè)目錄中,比如:E:\java\classes下,那么你首先創(chuàng)建這個(gè)目錄,然后編譯時(shí):
    E:\java\src >javac -d E:\java\classes HelloWorld.java
    就可以把生成的類文件放到E:\java\classes目錄下,并且按照包層次相應(yīng)的創(chuàng)建目錄路徑。你可以在E:\java\classes\org\javaresearch下找到HelloWorld.class文件。此時(shí)使用如下命令可以正確運(yùn)行(注意如果要用到其它類,請?jiān)贑LASSPATH中設(shè)好):
    E:\java\classes >java org.javaresearch.HelloWorld

最新更新
·Java開發(fā)技術(shù)十年的回顧與展
·關(guān)于TOMCAT主目錄與虛擬目錄
·用java程序調(diào)用ffmpeg執(zhí)行視
·JavaBean與Enterprise JavaB
·Java開發(fā)人員的十大戒律
·JavaFX Script將終結(jié)AJAX?還
·解決IE中所有png圖片透明問題
·JSP解決地址欄中傳遞中文字符
·Eclipse五歲了:Java程序員的
·審查Java代碼的十一種常見錯(cuò)
相關(guān)信息
放生
愚愛
夠愛
觸電
白狐
心跳
知足
犯錯(cuò)
降臨
分愛
葬愛
光榮
畫心
火花
稻香
愛得起
這種愛
大丈夫
花蝴蝶
二缺一
小酒窩
下雨天
右手邊
安靜了
棉花糖
明天過后
邊做邊愛
擦肩而過
沒有如果
懷念過去
等一分鐘
越來越愛
寂寞暴走
你的承諾
Nobody
我們都一樣
永遠(yuǎn)在身邊
天使的翅膀
原諒我一次
i miss you
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動(dòng)天感動(dòng)地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個(gè)錯(cuò)
最后一次的溫柔
愛上你是我的錯(cuò)
怎么會(huì)狠心傷害我
親愛的那不是愛情
傷心時(shí)候可以聽情歌
愛上你等于愛上了錯(cuò)
不是因?yàn)榧拍畔肽?/a>