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

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

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

    xiaohan

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      1 Posts :: 22 Stories :: 0 Comments :: 0 Trackbacks
    包含包層次的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類(lèi)(因?yàn)楫?dāng)前路徑包含在CLASSPATH中,具體為什么會(huì)提示wrong name,有興趣的朋友參見(jiàn)Java語(yǔ)言規(guī)范),但這個(gè)類(lèi)屬于org.javaresearch包。所以,你要做的就是按照上述包層次,相應(yīng)的創(chuàng)建目錄層 次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目錄下。運(yùn)行(這時(shí)候是在包層次的最高層目錄下運(yùn)行的):

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

      系統(tǒng)打印出:

      Hello World!

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

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

      因?yàn)轭?lèi)名的書(shū)寫(xiě)是用句點(diǎn)來(lái)分割包名的層次的,引用java類(lèi)庫(kù)里面的類(lèi)也可以這樣寫(xiě):java.util.List 類(lèi)的全名就是這樣的,我們?nèi)绻?import 語(yǔ)句里寫(xiě)上 import java.util.List;
    那么,就不用寫(xiě)全名了,直接寫(xiě) List list = new ...;java 編譯器就可以知道是 List 什么類(lèi).但是,由于,java.util 這個(gè)包 和 java.sql 這個(gè)包都有一個(gè) Date 類(lèi),所以,如果 同時(shí)導(dǎo)入這兩個(gè)包,那么會(huì)
    導(dǎo)致java 編譯器不知道引用那個(gè)類(lèi),有兩種解決辦法:
    a. 用全名來(lái)引用類(lèi):java.util.Date date1 = ...;java.sql.Date date2 = ...;
    b. 不要導(dǎo)入整個(gè)包,只導(dǎo)入所需要的類(lèi),如果你同時(shí)需要這兩個(gè) Date 類(lèi),那么只能寫(xiě)全名了,如果
    你不是同時(shí)需要這兩個(gè)類(lèi),你可以只導(dǎo)入需要的包:
    比如:import java.util.List; import java.sql.Date;這樣就不會(huì)沖突,因?yàn)榫幾g器可以十分清楚的區(qū)分
    這個(gè) Date 類(lèi)是 java.sql 包中的, java.util 包中的 Date 類(lèi)根本就沒(méi)有導(dǎo)入進(jìn)來(lái)。
    這一點(diǎn),可以按照常理來(lái)理解,還是比較好理解的。
      2. 使用 -d <directory>編譯選項(xiàng)

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

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

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

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

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

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

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

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

      E:\java\classes >java org.javaresearch.HelloWorld
    posted on 2012-10-30 22:02 曉寒 閱讀(192) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): eclipse
    主站蜘蛛池模板: 亚洲精品无码久久千人斩| 亚洲成AV人片在| 一区二区3区免费视频| 亚洲AV天天做在线观看| 99视频在线精品免费观看6| 成人国产网站v片免费观看| 久久亚洲精品成人| 四虎影院在线免费播放| 香蕉免费看一区二区三区| 亚洲午夜国产精品| 亚洲一本大道无码av天堂| 四虎最新永久免费视频| 免费无遮挡无遮羞在线看| 亚洲资源在线视频| 亚洲阿v天堂在线2017免费| 最近2019年免费中文字幕高清| 国产亚洲一卡2卡3卡4卡新区| 91亚洲精品第一综合不卡播放| 国产免费AV片无码永久免费| 中文字幕天天躁日日躁狠狠躁免费| 羞羞视频免费观看| 亚洲国产成人va在线观看网址| 亚洲精品亚洲人成在线观看下载 | 亚洲毛片在线观看| 一本久到久久亚洲综合| 99久久99这里只有免费费精品| 丝袜捆绑调教视频免费区| 亚洲人成无码网站在线观看| 亚洲狠狠久久综合一区77777| 全部免费国产潢色一级| 91在线视频免费播放| 久久狠狠躁免费观看2020| 人与动性xxxxx免费| 亚洲av色香蕉一区二区三区蜜桃| 亚洲视频免费在线播放| 亚洲精品无码午夜福利中文字幕 | 亚洲av乱码一区二区三区按摩| 亚洲视频在线观看免费| 激情97综合亚洲色婷婷五| 国产精品免费视频一区| 免费无码黄十八禁网站在线观看|