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

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

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

    隨筆 - 20  文章 - 12  trackbacks - 0
    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(1)

    隨筆檔案(20)

    java論壇

    我的朋友

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 15069
    • 排名 - 2000

    最新評論

    閱讀排行榜

    評論排行榜

    一段時間不用Java,經常忘記一些煩瑣的設置,特意寫此文檔備案。

    -------------
    java環(huán)境設置
    -------------

    在環(huán)境變量中設置以下三個變量:
    JAVA_HOME=C:\j2sdk1.4.1 //可以改為相應的目錄
    CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
    PATH=%JAVA_HOME%\bin;%PATH%

    然后在命令行輸入java -version命令,如果出現
    java version "1.4.1"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
    Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
    則說明已經配置成功!

    HelloWorld.java源程序如下:
    public class HelloWorld{?
    ?public static void main(String[] args) {??
    ??System.out.println("Hello World!");?
    ??}
    }

    在命令行執(zhí)行javac HelloWorld.java
    如果沒有輸出任何信息則說明編譯成功。

    在命令行運行java HelloWorld,輸出:
    Hello World!
    代表成功執(zhí)行了java程序。

    -----------------
    初學者常犯的錯誤
    -----------------

    1. 運行時,帶了.class后綴
    如果你試圖使用如下命令:
    E:\java\src>java HelloWorld.class
    系統(tǒng)會誤認為你運行的是HelloWorld包下的名為class的類文件,會到系統(tǒng)的CLASSPATH下(一般都包括當前目錄)企圖尋找HelloWorld.class.class這樣的類,這樣的類當然不存在了;并且也不可能存在,因為class是關鍵字,不能作為一個類的名字。所以會報如下錯誤信息:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

    2. 文件名大小寫錯誤
    對于像Windows這樣的系統(tǒng),編譯時可以不關心大小寫。比如編譯HelloWorld.java時,也可以使用:
    E:\java\src>javac helloworld.java
    也可以編譯通過,但產生的類文件仍然是和源文件相符的:HelloWorld.class。
    但在運行時一定要注意大小寫,比如試圖使用如下命令運行:
    E:\java\src>java helloworld
    將報類似于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
    此時在當前目錄下輸出HelloWorld.class。此時,運行不能使用上面相同的方法,使用:
    E:\java\src>java HelloWorld
    運行時,出現如下錯誤:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/javaresearch/HelloWorld)
    從上述錯誤信息你也可以看到,系統(tǒng)可以找到HelloWorld類(因為當前路徑包含在CLASSPATH中,具體為什么會提示wrong name,有興趣的朋友參見Java語言規(guī)范),但這個類屬于org.javaresearch包。所以,你要做的就是按照上述包層次,相應的創(chuàng)建目錄層次,把上面生成的HelloWorld.class放到E:\java\src\org\javaresearch\目錄下。運行:
    E:\java\src >java org.javaresearch.HelloWorld
    系統(tǒng)打印出:
    Hello World!
    這兒要注意的是,不能使用java org\javaresearch\HelloWorld來運行,此時同樣會出現如下錯誤:
    Exception in thread "main" java.lang.NoClassDefFoundError:org\javaresearch\HelloWorld (wrong name: org/javaresearch/HelloWorld)

    2. 使用 -d <directory>編譯選項
    是不是覺得上面的編譯方法有點麻煩,能不能自動在當前路徑(或任意指定的路徑)下生成包層次呢?有!使用-d <directory>編譯選項就能做到。
    E:\java\src >javac -d . HelloWorld.java
    此時,在當前目錄下就生成了一個org\javaresearch目錄,并且輸出的.class文件也在里面。運行:
    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目錄下,并且按照包層次相應的創(chuàng)建目錄路徑。你可以在E:\java\classes\org\javaresearch下找到HelloWorld.class文件。此時使用如下命令可以正確運行(注意如果要用到其它類,請在CLASSPATH中設好):
    E:\java\classes >java org.javaresearch.HelloWorld

    或者你可以在E:\java目錄下面運行以下命令來執(zhí)行
    E:\java >java -classpath .\classes org.javaresearch.HelloWorld
    使用java的-classpath參數可以將一些目錄加入類路徑

    -------------------
    打包jar文件
    -------------------
    可以把一個包內的所有class文件打包為一個jar文件,便于存放和運行。以上文的org.javaresearch包為例,其打包命令如下:
    E:\java\classes >jar cvf wxb.jar org
    會生成一個wxb.jar文件,將其中META-INF\MANIFEST.MF文件中添加如下一行:
    Main-Class: org.javaresearch.HelloWorld
    保存jar文件。

    或者首先創(chuàng)建并編輯一個MANIFEST.MF文件,其內容如下:
    Manifest-Version: 1.0
    Created-By: 1.4.1 (Sun Microsystems Inc.)
    Main-Class: org.javaresearch.HelloWorld
    將其保存到classes目錄中
    然后將其一起打包到jar文件中,打包命令如下:
    E:\java\classes >jar cvfm wxb.jar MANIFEST.MF org

    -------------
    運行jar文件
    -------------
    在命令行中輸入如下命令即可:
    E:\java\classes >java -jar wxb.jar
    輸出為:
    Hello World!

    ------------------------
    用Ant來編譯運行java程序
    ------------------------
    首先安裝Ant,步驟很簡單:
    1.將Ant壓縮包解壓到一個目錄,例如D:\Ant1.5.2;
    2.在環(huán)境變量中添加以下變量:
    ANT_HOME=D:\Ant1.5.2? //可以改為相應的目錄
    3.修改Path環(huán)境變量
    PATH=%ANT_HOME%\bin;%PATH%

    最后給出了一個Ant的build.xml文件,運行ant即可完成所有以上的編譯和運行過程,其build文件如下:
    <project name="HelloWorld" default="jar" basedir=".">
    ??? <description>
    ??????? building HelloWorld!
    ??? </description>
    ? <!-- set global properties for this build -->
    ? <property name="src" location="src"/>
    ? <property name="build" location="classes"/>
    ? <property name="dist"? location="dist"/>
    ? <property name="user.name" value="Wang Xuebin"/>

    ? <target name="init">
    ??? <!-- Create the time stamp -->
    ??? <tstamp/>
    ??? <!-- Create the classes directory structure used by compile -->
    ??? <mkdir dir="${build}"/>
    ? </target>

    ? <target name="build" depends="init"? description="build the source code" >
    ??? <!-- Compile the java code from ${src} into ${build} -->
    ??? <javac srcdir="${src}" destdir="${build}"/>
    ? </target>

    ? <target name="jar" depends="build"
    ??????? description="generate the distribution" >
    ??? <!-- Create the distribution directory -->
    ??? <mkdir dir="${dist}/lib"/>

    ??? <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    ??<jar destfile="${dist}/HelloWorld-${DSTAMP}.jar" basedir="${build}">
    ???<manifest>
    ????<attribute name="Built-By" value="${user.name}"/>
    ????<attribute name="Main-Class" value="org.javaresearch.HelloWorld"/>
    ???</manifest>
    ??</jar>?
    ?</target>
    ?
    ? <target name="run" depends="build" description="run HelloWorld">
    ??? <java classpath="${build}" classname="org.javaresearch.HelloWorld"></java>
    ? </target>

    ? <target name="runjar" depends="jar" description="run HelloWorld in jar file">
    ???????? <java jar="${dist}/HelloWorld-${DSTAMP}.jar"
    ?????????? fork="true"
    ?????????? failonerror="true"
    ?????????? maxmemory="128m"
    ?????????? >
    ???????? <arg value="-h"/>
    ???????? <classpath>
    ?????????? <pathelement location="${dist}/HelloWorld-${DSTAMP}.jar"/>
    ?????????? <pathelement path="${java.class.path}"/>
    ???????? </classpath>
    ?????? </java>
    ? </target>
    ?
    ? <target name="clean"
    ??????? description="clean up" >
    ??? <!-- Delete the ${build} and ${dist} directory trees -->
    ??? <delete dir="${build}"/>
    ??? <delete dir="${dist}"/>
    ? </target>
    </project>

    posted on 2007-01-17 12:56 閱讀(613) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: a毛片免费全部在线播放**| 免费观看亚洲人成网站| 免费成人在线电影| 久久国产成人精品国产成人亚洲| 在线播放亚洲精品| 在线免费观看韩国a视频| 亚洲а∨精品天堂在线| 国产一级淫片a免费播放口之| 亚洲第一第二第三第四第五第六| 四虎www成人影院免费观看| 亚洲爆乳大丰满无码专区| 免费日本黄色网址| 国产伦精品一区二区免费| 亚洲精品午夜国产VA久久成人| 三级黄色片免费看| 亚洲午夜精品一区二区| 97人妻无码一区二区精品免费| 亚洲成av人无码亚洲成av人| 免费精品国产自产拍观看| 国产精品美女免费视频观看| 亚洲热妇无码AV在线播放| 最近中文字幕国语免费完整| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲第一视频在线观看免费| 三级毛片在线免费观看| 亚洲永久中文字幕在线| 大学生美女毛片免费视频| 一级A毛片免费观看久久精品| 亚洲国产精品一区二区成人片国内 | 亚洲色大成网站WWW国产| 亚洲av无码专区在线观看素人| a级毛片毛片免费观看久潮| 亚洲网站在线免费观看| 国产免费看插插插视频| 香蕉视频在线免费看| 亚洲AV无码精品蜜桃| 亚洲无线一二三四区手机| 1000部羞羞禁止免费观看视频| 亚洲精品无码久久久久YW| 亚洲精品无码鲁网中文电影| 精品久久久久久久久免费影院|