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

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

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

    手機(jī)技術(shù)交流

    funabmol

    2007年11月27日 #

    關(guān)于Java包導(dǎo)入的一個(gè)奇怪問(wèn)題(轉(zhuǎn)貼至 孫鑫)

    這篇文章起源于程序員之家論壇(http://www.sunxin.org)上的一個(gè)網(wǎng)友的提問(wèn),我對(duì)他的問(wèn)題做了回答。具體網(wǎng)址:http://www.sunxin.org/bbs/dispbbs.asp?boardID=6&ID=12289&page=1

    我感覺(jué)這個(gè)問(wèn)題的答案對(duì)Java的初學(xué)者來(lái)說(shuō),會(huì)有一定的幫助,所以將問(wèn)題和答案整理成文。

    問(wèn)題

    首先新建一個(gè)目錄存放Java源文件,或者直接在某個(gè)盤符下放置程序,例如:D:",然后按照下面的步驟進(jìn)行實(shí)驗(yàn)(本實(shí)驗(yàn)在D:"目錄下操作)。

    Step1:編寫程序World.java,代碼如下:

    package a;

    public class World

    {

        public World()

        {

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

        }

    }

    Step2:編寫Hello.java,代碼如下:

    import a.World;

    public class Hello

    {

        public static void main(String[] args)

        {

            System.out.print("Hello");

            World world = new World();

        }

    }

    Step3:將兩個(gè)程序保存到你所建的目錄下,在這里,我們將它們保存到D:"下。

    Step4:編譯這兩個(gè)Java源文件

           先編譯World.java,執(zhí)行javac -d . World.java,在D盤生成目錄a,及其中的World.class。接下來(lái)編譯Hello.java,執(zhí)行javac Hello.java,在D盤上生成Hello.class

    Step5:運(yùn)行Hello

           執(zhí)行java Hello,輸出Hello, World!目前一切正常。

    Step6:修改Hello.java

    將第1行的語(yǔ)句“import a.World;”改為“import a.*;”,重新編譯Hello.java,出現(xiàn)下面的錯(cuò)誤提示:

    錯(cuò)誤的類文件: ."World.java

    文件不包含類 World

    請(qǐng)刪除該文件或確保該文件位于正確的類路徑子目錄中。

            World world = new World();

            ^

    Step7:根據(jù)錯(cuò)誤提示進(jìn)行下列操作

    按照錯(cuò)誤提示,刪除 World.java 或者將 World.java 放到其他地方,則程序成功編譯運(yùn)行。

    問(wèn)題:

    請(qǐng)問(wèn)為何會(huì)出現(xiàn)Step6中的錯(cuò)誤呢?使用 import a.*;”導(dǎo)入a下所有類和接口,和使用“import a.World;”導(dǎo)入a包中具體的類,為何會(huì)產(chǎn)生上述的差異呢?

    回答

    當(dāng)你導(dǎo)入一個(gè)包中所有的類時(shí),javac在編譯時(shí)并不確定你要使用的World類是a包中的類,還是其他包中的類,它會(huì)根據(jù)你機(jī)器上的CLASSPATH環(huán)境變量的值去查找類,通常我們?cè)?/span>CLASSPATH中會(huì)設(shè)置一個(gè)點(diǎn)(.),表示當(dāng)前目錄,如果沒(méi)有CLASSPATH環(huán)境變量,那么在JDK1.4之后,默認(rèn)也是查找當(dāng)前目錄。javac在按照文件名(不包括后綴)來(lái)查找類,于是找到World.java,而這個(gè)文件根本不是字節(jié)碼文件,當(dāng)然就報(bào)錯(cuò)了。當(dāng)你導(dǎo)入一個(gè)具體的類時(shí),javac在分析源文件時(shí)就知道了你程序中用的類是a.World,那么它就在CLASSPATH環(huán)境變量下查找a目錄下的World類,正好有,于是正確執(zhí)行。

    為了幫助讀者對(duì)這個(gè)問(wèn)題加深理解,我給大家設(shè)計(jì)了下面的操作步驟(本文是在D盤上操作):

    1)將a目錄剪切到C:"下;
    2)再次執(zhí)行javac Hello.java,你會(huì)看到同樣的錯(cuò)誤。也就是證實(shí)了在出錯(cuò)之前,javac還沒(méi)有去查找a包中的類(對(duì)于包是否存在的驗(yàn)證已經(jīng)進(jìn)行)。
    3)執(zhí)行set classpath=c:"。由于你明確地設(shè)置了CLASSPATH環(huán)境變量的值,并且沒(méi)有包含點(diǎn)(.),因此javac不會(huì)再查找當(dāng)前的目錄。
    4)再次執(zhí)行javac Hello.java,你會(huì)發(fā)現(xiàn)成功執(zhí)行。

    這里面還有一個(gè)有趣的現(xiàn)象,如果我們將a目錄下的World.class刪除,替換為World.java,那么在編譯Hello.java時(shí),World也會(huì)被自動(dòng)編譯。

    posted @ 2007-11-27 13:52 smart 閱讀(415) | 評(píng)論 (1)編輯 收藏

    2007年11月21日 #

    Funambol DM 安裝過(guò)程

     

    Funambol DM 安裝過(guò)程

           Funambol安裝過(guò)程包括了Java環(huán)境安裝,Mysql安裝,Jboss安裝和Funambol DM的安裝.: Java環(huán)境安裝

    1:     Java現(xiàn)在使用的版本是:jdk-1_5_0-windows-i586.exe.

    2:     安裝完畢,請(qǐng)?jiān)?/span>windows系統(tǒng)下設(shè)置環(huán)境變量JAVA_HOME={jdk的安裝目錄}

    JAVA_HOME=C:"Java"jdk1.5.0

    : Mysql安裝

    1:     Mysal使用的版本是: mysql-5.0.22-win32.zip

    2:     安裝完畢,要進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建

    3:     MySQL 中創(chuàng)建funambol Database

    運(yùn)行如下命令為DM Server創(chuàng)建Database和相關(guān)的授權(quán)用戶funambol

    mysql > create database funambol_db;

    mysql > grant all on funambol_db.* to 'funambol'@'localhost' identified by 'funambol';  

    4:     檢查創(chuàng)建的MySQL funambol 用戶權(quán)限

    運(yùn)行如下命令檢查在MySQL中創(chuàng)建的用戶funambol是否對(duì)funambol _db數(shù)據(jù)庫(kù)具備訪問(wèn)權(quán)限:

    > mysql -u funambol

    mysql > use funambol_db;

    Database changed

    5:     安裝創(chuàng)建完成,可以到Mysqldata目錄查看目前創(chuàng)建的數(shù)據(jù)庫(kù)是否存在.

    : Jboss安裝

    1:     Jboss使用版本為:jboss-4.2.1.GA

    下載地址:

    http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=16942&release_id=523619

    2:     在如上的下載頁(yè)中下載JBoss-4.2.1.GA.zip文件。

    下載完成后,將其解壓縮后即可完成安裝,解壓縮后將其放置到一個(gè)不帶空格的目錄(若目錄帶有空格,例如:C:"Program Files,日后可能會(huì)產(chǎn)生一些莫名的錯(cuò)誤)egc:"jboss4.2.1。同時(shí)在“環(huán)境變量設(shè)置”中設(shè)置名為JBOSS_HOME的環(huán)境變量,值為JBoss的安裝路徑,如:
    JBOSS_HOME= c:"jboss4.2.1

    J2EE_HOME= c:"jboss4.2.1

    3:     拷貝mysql的驅(qū)動(dòng)到jboss目錄下,

           mysqljdbc驅(qū)動(dòng)文件mysql-connector-java-3.1.12-bin.jar拷貝到c:" JBoss4.2.1"

    MySQLJDBC(如果沒(méi)有請(qǐng)自行創(chuàng)建),并在“環(huán)境變量設(shè)置”設(shè)置

    JBOSS_CLASSPATH=c:" JBoss4.2.1"MySQLJDBC"mysql-connector-java-3.1.12-bin.jar

    在此,JBoss的安裝工作已經(jīng)結(jié)束,

    5:     修改run.bat文件

           :

           rem Add -server to the JVM options, if supported

    "%JAVA%" -version 2>&1 | findstr /I hotspot > nul

    if not errorlevel == 1 (set JAVA_OPTS=%JAVA_OPTS% -server)

    改為

    rem Add -server to the JVM options, if supported

    rem "%JAVA%" -version 2>&1 | findstr /I hotspot > nul

    rem if not errorlevel == 1 (set JAVA_OPTS=%JAVA_OPTS% -server)

    4:     測(cè)試安裝是否成功:

    運(yùn)行JBoss安裝目錄"bin"run.bat,如果窗口中沒(méi)有出現(xiàn)異常,且出現(xiàn):10:16:19,765 INFO [Server] JBoss (MX MicroKernel) [4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)] Started in 30s:828ms字樣,則表示安裝成功。

    5:     訪問(wèn)JBOSS

    我們可以通過(guò)訪問(wèn):http://localhost:8080進(jìn)入JBoss的歡迎界面,點(diǎn)擊JBoss Management下的JMX Console可進(jìn)入JBoss的控制臺(tái)。

    6:     若啟動(dòng)失敗,可能由以下原因引起:

    1JBoss所用的端口(8080109910988083等)被占用。一般情況下為8080端口被占用(例如,Oracle占用了8080端口),此時(shí)需要修改JBoss的端口,方法為進(jìn)入JBoss安裝目錄"server"default"deploy"jboss-web.deployer目錄,修改其下的server.xml目錄,在此文件中搜索8080,將其改成你想要的端口即可(例如8088);

    2JDK安裝不正確;

    3JBoss下載不完全。

    : Funambol DM安裝

    1:    Funambol 使用的版本是: funambol-dm-server-3.5.2

    下載地址:

    http://www.funambol.com/opensource/downloads.html

    2:     下載Sync4J DM Server后直接解壓縮即可。具體的地址可以是C:"funambol

    3:     修改DM install.properties中的數(shù)據(jù)庫(kù)連接參數(shù)。

    文件路徑為Sync4J DM Server的根目錄下,即install.properties。所需修改的內(nèi)容如下:  

    server-name=http://{your ip}:8080/funambol/dm

    dbms=mysql

    jdbc.classpath=C:/jboss-4.2.1/MySQLJDBC/mysql-connector-java-3.1.12-bin.jar

    jdbc.driver=com.mysql.jdbc.Driver

    jdbc.url=jdbc:mysql://127.0.0.1/funambol_db?zeroDateTimeBehavior=round

    jdbc.user=funambol

    jdbc.password=funambol

    注意:

    A:    如果使用MySQL,并且MySQL Serversync4j DM Server在同一臺(tái)機(jī)器上,使用127.0.0.1進(jìn)行連接時(shí),缺省情況下可以不設(shè)置口令。

    B:    server-name中提供的URL必須填寫當(dāng)前安裝的DM ServerInternet合法IP地址,否則手機(jī)終端設(shè)備無(wú)法發(fā)起連接,無(wú)法完成DM配置信息的同步。

    C:使用MySQL時(shí)必須設(shè)定jdbc.url的參數(shù)zeroDateTimeBehavior=round,否則在運(yùn)行DM時(shí)將出現(xiàn)如下錯(cuò)誤信息:

    Error Executing Database Query.

    Value '0000-00-00' can not be represented as  java.sql.Timestamp 

    詳細(xì)原因參見(jiàn):http://dev.mysql.com/doc/refman/5.0/en/cj-upgrading.html

    4:     修改DM Serverdefault"config"common"properties" Funambol.properties中的參數(shù), 內(nèi)容如下:

    server.uri=http://{your ip}:8080/funambol/dm

    :   server.uri中提供的URL必須填寫當(dāng)前安裝的DM ServerInternet合法IP地址,否則手機(jī)終端設(shè)備無(wú)法發(fā)起連接,無(wú)法完成DM配置信息的同步。

    5:     運(yùn)行Sync4j DM Server安裝腳本

    > cd funambol

    > bin"install.cmd jboss32

    BUILD SUCCESSFUL

    Total time: 12 seconds

    6:     檢查MySQL中數(shù)據(jù)庫(kù)表的創(chuàng)建情況

    前面的安裝步驟結(jié)束后將在MySQL Serverfunambol_db中創(chuàng)建相關(guān)的表,本步驟對(duì)其進(jìn)行檢查。方法如下:

    > mysql -u funambol

    mysql > use funambol_db;

    mysql > show tables;

           +----------------------------------------+

    | Tables_in_sync4jdm_db             |

    +----------------------------------------+

    | fnbl_device                           |

    | fnbl_dm_state                     |

    | fnbl_id                              |

    | fnbl_principal                       |

    | fnbl_role                                 |

    | fnbl_treediscovery_processor   |

    | fnbl_user                               |

    | fnbl_user_dm_demo              |

    | fnbl_user_role                        |

    +----------------------------------------+

    9 rows in set (0.00 sec)

    7:     啟動(dòng)Sync4j DM Server

           當(dāng)安裝成功后,系統(tǒng)會(huì)自動(dòng)在bin目錄下生成start.cmd/sh文件.

    > cd funambol

    > bin"start.cmd

    注意: 所有的字符都是大小寫敏感,所以上面紅色字體一定按照實(shí)際情況的大小寫進(jìn)行組織.

    posted @ 2007-11-21 10:08 smart 閱讀(3079) | 評(píng)論 (1)編輯 收藏

    僅列出標(biāo)題  

    My Links

    Blog Stats

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲gv猛男gv无码男同短文| 国产人成亚洲第一网站在线播放| 在线看片免费人成视久网| 亚洲校园春色另类激情| 亚洲国产香蕉人人爽成AV片久久| 男人j进入女人j内部免费网站| 亚洲精品一二三区| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 222www免费视频| 自拍偷自拍亚洲精品播放| 亚洲Av永久无码精品三区在线| 成年人在线免费看视频| 亚洲国产成人91精品| 亚洲美女高清一区二区三区| 在线a免费观看最新网站| 成人久久久观看免费毛片| 亚洲精品成人区在线观看| **aaaaa毛片免费| 老司机免费午夜精品视频| 亚洲毛片无码专区亚洲乱| av大片在线无码免费| 国产成人无码精品久久久免费| 亚洲一区二区三区影院| 岛国精品一区免费视频在线观看| 亚洲一级片内射网站在线观看| 久久国产精品免费一区| 亚洲av午夜福利精品一区| 又爽又高潮的BB视频免费看 | 午夜免费福利在线观看| 美女在线视频观看影院免费天天看 | 两个人日本WWW免费版| 亚洲va中文字幕| 亚洲欧洲一区二区三区| 成人在线免费看片| 免费在线中文日本| A毛片毛片看免费| 免费在线人人电影网| 日本亚洲免费无线码| 亚洲毛片在线免费观看| 久久精品国产亚洲AV网站| 亚洲欧洲久久av|