<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xiaohan

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      1 Posts :: 22 Stories :: 0 Comments :: 0 Trackbacks
    以簡單而經(jīng)典的 “HelloWorld.java” 為例

    不含包層次的HelloWorld.java

      public class HelloWorld

          {

            public static void main(String[] args)

                 {

                        System.out.println("Hello World!");

                 }

         }

      保存在E:\java\src下,命令行下,改變當(dāng)前路徑到:E:\java\src,使用javac命令編譯:

      E:\java\src>javac HelloWorld.java

      運(yùn)行:

      E:\java\src>java HelloWorld

      屏幕打印出:

      Hello World!

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

      1. 運(yùn)行時,帶了.class后綴

      如果你試圖使用如下命令:

      E:\java\src>java HelloWorld.class

       系統(tǒng)會誤認(rèn)為你運(yùn)行的是HelloWorld包下的名為class的類文件,會到系統(tǒng)的CLASSPATH下(一般都包括當(dāng)前目錄)企圖尋找 HelloWorld.class.class這樣的類,這樣的類當(dāng)然不存在了;并且也不可能存在,因?yàn)?/span>class是關(guān)鍵字,不能作為一個類的名字。所以 會報(bào)如下錯誤信息:

      Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

      2. 文件名大小寫錯誤

      對于像Windows這樣的系統(tǒng),編譯時可以不關(guān)心大小寫。比如編譯HelloWorld.java時,也可以使用:

      E:\java\src>javac helloworld.java

      也可以編譯通過,但產(chǎn)生的類文件仍然是和源文件相符的:HelloWorld.class

      但在運(yùn)行時一定要注意大小寫,比如試圖使用如下命令運(yùn)行:

      E:\java\src>java helloworld

      將報(bào)類似于1中的錯誤:

      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!");

                 }

             }



      編譯時有兩種方法

      1. 直接編譯

      E:\java\src>javac HelloWorld.java

      此時在當(dāng)前目錄下輸出HelloWorld.class。此時,運(yùn)行不能使用上面相同的方法,使用:

      E:\java\src>java HelloWorld

      運(yùn)行時,出現(xiàn)如下錯誤:

      Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)

       從上述錯誤信息你也可以看到,系統(tǒng)可以找到HelloWorld類(因?yàn)楫?dāng)前路徑包含在CLASSPATH中,具體為什么會提示wrong name,有興趣的朋友參見Java語言規(guī)范),但這個類屬于org.javaresearch包。所以,你要做的就是按照上述包層次,相應(yīng)的創(chuàng)建目錄層 次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目錄下。運(yùn)行(這時候是在包層次的最高層目錄下運(yùn)行的):

      E:\java\src >java org.javaresearch.HelloWorld

      系統(tǒng)打印出:

      Hello World!

      這兒要注意的是,不能使用java org\javaresearch\HelloWorld來運(yùn)行,此時同樣會出現(xiàn)如下錯誤:

      Exception in thread "main" java.lang.NoClassDefFoundErrorrg\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)

      因?yàn)轭惷臅鴮懯怯镁潼c(diǎn)來分割包名的層次的,引用java類庫里面的類也可以這樣寫:java.util.List  類的全名就是這樣的,我們?nèi)绻?import 語句里寫上 import java.util.List;

    那么,就不用寫全名了,直接寫 List list = new ...;java 編譯器就可以知道是 List 什么類.但是,由于,java.util 這個包 和 java.sql 這個包都有一個 Date 類,所以,如果 同時導(dǎo)入這兩個包,那么會

    導(dǎo)致java 編譯器不知道引用那個類,有兩種解決辦法:

    a. 用全名來引用類:java.util.Date date1 = ...;java.sql.Date date2 = ...;

    b. 不要導(dǎo)入整個包,只導(dǎo)入所需要的類,如果你同時需要這兩個 Date 類,那么只能寫全名了,如果

    你不是同時需要這兩個類,你可以只導(dǎo)入需要的包:

    比如:import java.util.List; import java.sql.Date;這樣就不會沖突,因?yàn)榫幾g器可以十分清楚的區(qū)分

    這個 Date 類是 java.sql 包中的, java.util 包中的 Date 類根本就沒有導(dǎo)入進(jìn)來。

    這一點(diǎn),可以按照常理來理解,還是比較好理解的。

      2. 使用 -d <directory>編譯選項(xiàng)

      是不是覺得上面的編譯方法有點(diǎn)麻煩,能不能自動在當(dāng)前路徑(或任意指定的路徑)下生成包層次呢?有!使用-d <directory>編譯選項(xiàng)就能做到。

      E:\java\src >javac

    (其中的點(diǎn)表示當(dāng)前目錄。d 和 . 之間有空格, .和后面的java文件名之間也有空格)

      此時,在當(dāng)前目錄下就生成了一個org\javaresearch目錄,并且輸出的.class文件也在里面。運(yùn)行:

      E:\java\src >java org.javaresearch.HelloWorld

      系統(tǒng)打印:Hello World!

      如果你想把生成的類文件集中存放在一個目錄中,比如:E:\java\classes下,那么你首先創(chuàng)建這個目錄,然后編譯時:

      E:\java\src >javac -d E:\java\classes HelloWorld.java

       就可以把生成的類文件放到E:\java\classes目錄下,并且按照包層次相應(yīng)的創(chuàng)建目錄路徑。你可以在E:\java\classes\org \ javaresearch下找到HelloWorld.class文件。此時使用如下命令可以正確運(yùn)行(注意如果要用到其它類,請?jiān)?/span>CLASSPATH 設(shè)好):

      E:\java\classes >java org.javaresearch.HelloWorld
    轉(zhuǎn)自http://blog.sina.com.cn/s/blog_5163b2980100bocf.html
    posted on 2012-12-09 23:21 曉寒 閱讀(146) 評論(0)  編輯  收藏 所屬分類: eclipse
    主站蜘蛛池模板: 亚洲精品国产国语| 亚洲色欲啪啪久久WWW综合网| 十八禁无码免费网站| 亚洲av无码久久忘忧草| 久久久精品午夜免费不卡| 抽搐一进一出gif免费视频| 日韩成全视频观看免费观看高清| 国产精品亚洲专区无码唯爱网 | 最新中文字幕电影免费观看| 亚洲成av人片天堂网无码】| 亚洲成a人在线看天堂无码| 在线观看黄片免费入口不卡| 亚洲精品白浆高清久久久久久| 你懂的网址免费国产| 亚洲乱码卡三乱码新区| 日韩亚洲国产综合久久久| A片在线免费观看| 亚洲欧美熟妇综合久久久久| 亚洲人成网站18禁止一区 | 亚洲中文字幕无码亚洲成A人片| 亚洲AV无码一区二三区 | 亚洲精品一卡2卡3卡三卡四卡| 日韩电影免费观看| 曰批全过程免费视频观看免费软件| 亚洲av最新在线网址| 国产青草视频在线观看免费影院| 久久久久国色av免费看| 麻豆安全免费网址入口| 亚洲依依成人亚洲社区| 久久夜色精品国产噜噜噜亚洲AV| 亚洲精品国产日韩无码AV永久免费网 | 卡一卡二卡三在线入口免费| 99re免费在线视频| 国产成人无码免费看片软件| 精品特级一级毛片免费观看| 亚洲av无码专区在线电影天堂| 亚洲高清视频在线| 亚洲性无码AV中文字幕| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲国产综合在线| 亚洲欧洲日产专区|