• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 轉一份JAVA初學常遇到的問題解決方法!

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    在 WINDOWS 和LINUX中配JDK和初學者常遇到的問題!一部分! 如何在win9x下配置JDK HelloWorld@bynyra@sohu.com2002-6-5ver0.5 公 開發 表在http://www.java.com.cn/ 適用于win9x平臺下,j2sdkse1.3以上,對j2sdkse1.2.x有一定參考意義! 1總述 1.1什么是JDK JD
    WINDOWS和LINUX中配JDK和初學者常遇到的問題!一部分!

    如何在win9x下配置JDK
    <HelloWorld>@by nyra@sohu.com 2002-6-5 ver 0.5
    開發表在http://www.java.com.cn/&#160; 
    適用于win9x平臺下,j2sdk se1.3以上,對j2sdk se1.2.x有一定參考意義!

    1總述
    1.1什么是JDK
      JDK是Java develop kit的縮寫,它是早期Java的開發包名稱,一直延用至今!
      在1998年jdk發表1.2版的時候,Sun公司使用了新名稱Java 2 platform來稱呼Java
    譯成中文就是“Java平臺”,修改后的jdk稱為J2sdk即Java 2 (platform) software
    Develping kit,并分為標準版(Standard Edition)又稱j2se, 企業版(Enterprise Edition)
    又稱j2ee,微型版(MicorEdition)又稱j2me.它們有不同的用途,不過最基本的開發包還是j2se.

    1.2JDK的最新版
      JDK的最新版可以在java.sun.com下載,到2002-6-5為止,j2se發布到1.4.0。在win32(win9x或
    winNT/2000/xp)下有英文版和國際版(International),國際版的工具有中文提示!
      JDK的下載地址是
      1.4版 http://java.sun.com/j2se/1.4/download.html&#160; 
      1.3版 http://java.sun.com/j2se/1.3/download.html&#160; 
      不推薦使用1.2以前的版本,除非你有特別的要求!
      本文檔的示例中使用j2se 1.4 English版

    1.3安裝j2sdk
      從sun下載的jdk是一個可執行文件,約30多兆,直接執行即可。注意它要求一個安裝目錄,
    默認下是jdk1.x.x,這個目錄是可修改的!為了方便下面的描述,這里假設安裝在D:/j2sdk/se14
    目錄下。最后jdk會自動安裝一個java 運行時環境(java runtime enveronment)在c:/Program files/
    javasoft/...不要和上面的jdk目錄搞混了!

    2.jdk詳解

    2.1jdk的虛擬機
      jdk分為二個部分,一是上面提到的java 運行時環境,二是開發環境。它們各有一套
    Java虛擬機,在分別屬于Java運行時環境和開發環境的目錄下各有一個jre目錄,這就是真正的Java
    虛擬機所在!
      Java運行時環境的虛擬機在:
      c:/Program files/javasoft/.../jre
      1.4版可能為:C:\Program Files\Java\j2re1.4.0
      Java開發環境的虛擬機在:
      D:/j2sdk/se14/jre
      在整個windows環境中有很多Java.exe可執行文件,最終它們都是調用以上二者之一的虛擬機!
      選擇虛擬機可以使用控制面板上的Java Plug-in,高級選項卡中Java Rutime Environment選單
    使用缺省值時使用Java運行時環境的虛擬機。
      這同一個jdk安裝的這兩個虛擬機基本上沒有區別!

    2.2可執行文件java.exe和javac.exe的選擇
      這兩個工具分別用于執行Java程序和編譯Java程序!在裝有Jdk的機器上有多個java和javac文件!
    我們可以通過設置環境變量Path來選擇使用某一個Java.exe或javac.exe文件!
      多個版本的java.exe和javac.exe不能通用,也不能修改位置!也就是說當把windows目錄下的java.exe
    移動到JDK的安裝目錄下,它可能將不能執行(早期的java.exe是這樣,在1.3以后好像沒有這種說法,大家
    可以試一試,1.3以后好像是通過注冊表取得虛擬機的位置,而不是相對路徑!)。
      推薦使用c:/j2sdk/se14/bin目錄下的Java.exe,這是一種習慣,沒有必要的理由!
      這時path可以設置為path=c:/j2sdk/se14/bin;%path%,注意在windows目錄下也有一個java.exe!!
    也就是說即使不設置path也可以執行Java程序!
      在path變量中,越靠前的目錄中的可執行文件將有越高優先執行權!也就說在目錄a和目錄b中均有文件
    c.exe時,如果path中a在b前,將執行a目錄下的c.exe而不是b/c.exe

    2.3類路徑classpath
      這是一個古老的問題,在1.2以后不再需要classpath來設置系統類的路徑!classpath是為了設置
    用戶編寫的類或第三方類庫而設置的!
      比如用戶將編譯好的類放在X:\pathto\classes目錄下,classes目錄下是包目錄如com/some/...
    也可能直接是類文件HelloWorld.class
      執行時這樣使用,當前目錄為任意!
      >java -cp X:\pathto\classes HelloWorld
      -cp 后跟的就是classpath,設置環境變量CLASSPATH的效果是一樣的!
      也可以在classpath中使用壓縮文件,比如zip或jar.如果用戶把HelloWorld.class放入了
    Some.jar文件中!
      >java -cp X:\pathto\Some.jar HelloWorld
      當混合使用多個目錄或jar文件時,Java虛擬機執行第一個找到的類!
      >java -cp X:\pathto\classes;X:\pathto\Some.jar HelloWorld
      將不執行Some.jar中的HelloWorld.class

    2.4編譯Helloworld.java

    2.4.1編譯無包(公共包)的Java程序
      Helloworld.java的內容如下:
      //這里暫不使用包!
      // package nyra.pljc.helloworld.win9x;

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

      注意Java是區分大小寫的,請注意大小寫錯誤!

      HelloWorld保存在X:\mywork\HelloWorld.java中,注意文件名,申明為public的類只能保存在
    同名文件中(大小寫一致)!
      編譯,當前目錄為任意!
      >javac -sourcepath x:\mywork HelloWorld.java 
      注意sourcepath為源文件目錄!需要引用其它類(.class)時候應使用classpath(不能簡寫為cp)如下:
      >javac -sourcepath x:\mywork -classpath X:\otherclass HelloWorld.java

    2.4.2編譯有包的Java程序
      Helloworld.java的內容如下:
      //注意,申明了包!!
      package nyra.pljc.helloworld.win9x;

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

      注意Java是區分大小寫的,請注意大小寫錯誤!

      HelloWorld保存在X:\mywork\HelloWorld.java中,注意文件名,申明為public的類只能保存在
    同名文件中(大小寫一致)!源文件不一定要保存在包目錄(nyra/pljc/helloworld/win9x)下!
      編譯,當前目錄為任意!
      >javac -sourcepath x:\mywork -d . HelloWorld.java 
      注意-d .指得是在當前目錄下生成包目錄和類文件,如果不指定-d則在當前目錄下生成HelloWorld
    .class,這里執行java HelloWorld會提示沒有這個類,原因是沒有包目錄,所以一定要使用-d
      要在原文件目錄(x:\mywork)下生成類文件,則使用-d x:\mywork

    2.4.3編譯文件查找順序
     當需要類StrangeClass,Java將查找StrangeClass.class文件
     Java程序先檢查bootstrap核心類目錄,如果沒有目標
     檢查Extension類目錄,及其目錄的jar文件中(這個目錄在虛擬機目錄jre/lib/ext),如果沒有
      檢查classpath指定的目錄及jar文件,如果沒有
      {{{不}}}檢查當前目錄!
      如果是javac才向下執行,如果是java.exe直接提示沒有類!
      檢查sourcepath,有沒有需要類源文件,如果有就編譯它,如果沒有
      檢查編譯文件列表,有沒有需要的類源文件,如果有就編譯它,如果沒有
      提示缺少類!

    3. FQA 
      這個FQA部分來自BBS 水木清華站 smth.org論壇
      (這不是一個好FQA,我準備重寫一個,這里權以充數?。?br />   錯誤1:
    'javac' 不是內部或外部命令,也不是可運行的程序或批處理文件。
    (javac: Command not found)
    產生的原因是沒有設置好環境變量path。Win98下在autoexce.bat中加入
    path=%path%;c:\jdk1.2\bin,Win2000下則控制面板->系統->高級->環境變量->系統變
    量...看到了?雙擊Path,在后面加上c:\jdk1.2\bin。當然我們假設JDK安裝在了
    c:\jdk1.2目錄下(有點唐僧了?)...好像還要重啟系統才起作用...(//知道了!//西
    紅柿)
    好,再試試!javac HelloWorld


    * 錯誤2:
    HelloWorld is an invalid option or argument.
    拜托,給點專業精神,java的源程序是一定要存成.java文件的,而且編譯時要寫全
    .java呀。
    OK, javac HelloWorld.java (這回總該成了吧?)


    * 錯誤3:
    HelloWorld.java:1: Public class helloworld must be defined in a file called
    "HelloWorld.java".
    public class helloworld{
    ^
    這個問題嘛,是因為你的類的名字與文件的名字不一致。(誰說的,明明看到人家都有
    這樣寫的 ) OK,準確地說,一個Java源程序中可以定義多個類,但是,具有public
    屬性的類只能有一個,而且要與文件名相一致。還有,main方法一定要放在這個public
    的類之中,這樣才能java(運行)這個類。另外一點是Java語言里面是嚴格區分大小寫
    的,初學者要注意呀。像上例中 helloworld 與 HelloWorld 就認為是不一樣,因而...
    oh... 好,改好了,嘻嘻... javac HelloWorld.java
    ...(咦,怎么什么也沒有呀?)//faint 這就是編譯通過了!看看是不是多了一個
    HelloWorld.class ?
    (hehe..按書上教的:) java HelloWorld (!! 這個我知道,不是java HelloWorld.class
    喲)


    * 錯誤4:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
    呵呵,這個嘛,就是著名的類路徑(classpath)問題啦。實際上,類路徑是在編譯過程就
    涉及的Java中的概念。classpath就是指明去哪里找用到的類,就這么簡單。由于我們的
    HelloWorld沒用到其它的(非java.lang包中的)類,所以編譯時沒遇到這個問題。運行
    時呢,就要指明你的類在哪里了。解決方法嘛,可以用下面的命令運行:
    java -classpath . HelloWorld
    “.”就代表當前目錄。當然這樣做有點麻煩(是“太麻煩”?。?,我們可以在環境變量
    中設置默認的classpath。方法就照上述設置path那樣。將classpath設為:
    classpath=.;c:\jdk1.2\lib\dt.jar;c:\jdk1.2\lib\tools.jar 后面的兩個建議也設上
    ,以后開發用的著。
    java -classpath . HelloWorld(再不出來我就不學java了)


    * 錯誤5:
    Exception in thread "main" java.lang.NoSuchMethodError: main
    (//咣當)別,堅持住??纯茨愕拇a,問題出在main方法的定義上,寫對地方了嗎,
    是這樣寫的嗎:
    public static void main(String args[]) { //一個字都不要差,先別問為什么了...
    對,包括大小寫!
    java -classpath . HelloWorld (聽天由命了?。?br />Hello World!
    (faint!終于...)

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>