程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> java入門,建議看看

java入門,建議看看

編輯:JAVA編程入門知識
  如何在win9x下配置JDK
  適用於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
  1.3版 http://java.sun.com/j2se/1.3/download.html
  不推薦使用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 FilesJavaj2re1.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:pathtoclasses目錄下,classes目錄下是包目錄如com/some/...
  也可能直接是類文件HelloWorld.class
  執行時這樣使用,當前目錄為任意!
  >java -cp X:pathtoclasses HelloWorld
  -cp 後跟的就是classpath,設置環境變量CLASSPATH的效果是一樣的!
  也可以在classpath中使用壓縮文件,比如zip或jar.假如用戶把HelloWorld.class放入了
  Some.jar文件中!
  >java -cp X:pathtoSome.jar HelloWorld
  當混合使用多個目錄或jar文件時,Java虛擬機執行第一個找到的類!
  >java -cp X:pathtoclasses;X:pathtoSome.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:myworkHelloWorld.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:myworkHelloWorld.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,我預備重寫一個,這裡權以充數!)
  錯誤1:
  ´javac´ 不是內部或外部命令,也不是可運行的程序或批處理文件。
  (javac: Command not found)
  產生的原因是沒有設置好環境變量path。Win98下在autoexce.bat中加入
  path=%path%;c:jdk1.2in,Win2000下則控制面板->系統->高級->環境變量->系統變
  量...看到了?雙擊Path,在後面加上c:jdk1.2in。當然我們假設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.2libdt.jar;c:jdk1.2lib ools.jar 後面的兩個建議也設上
  ,以後開發用的著。
  java -classpath . HelloWorld(再不出來我就不學java了)
  
  
  * 錯誤5:
  Exception in thread "main" java.lang.NoSUChMethodError: main
  (//咣當)別,堅持住。看看你的代碼,問題出在main方法的定義上,寫對地方了嗎,
  是這樣寫的嗎:
  public static void main(String args[]) { //一個字都不要差,先別問為什麼了...
  對,包括大小寫!
  java -classpath . HelloWorld (聽天由命了!)
  Hello World!
  (faint!終於...)
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved