JAVA

1 JAVA 的編輯與執行

可以使用最簡單的文字編輯器編輯 JAVA 程式碼,使用命令列編譯並執行 JAVA。 如果使用ECLIPSE FOR JAVA更好,因為可以在編輯的同時,也可以讓 ECLIPSE 執行並偵錯。


2 文字編輯器

使用 ECLIPSE 撰寫並驗證 JAVA 真的很方便,但當要把程式碼用 PACKAGE 的方式包起來的時候,我發現做不到。 於是我就又回到文字編輯器的方式編輯JAVA程式碼,之後,再用主控台的方式編譯並執行JAVA的程式碼。 在 ECLIPSE FOR JAVA 的環境中,只要負責寫 JAVA 的程式碼,其餘的事就交給 ECLIPSE 處理就好。 但使用文字編輯器的時候,不只要編寫JAVA的程式碼,還要處理 JAVA 編譯器的相關動作設定。 這裡說明 JAVA 編譯的相關動作。

以我的電腦的安裝為例。
一、因為編譯 JAVA 程式碼的時候,會使用到 JAVA.EXE這隻執行檔。執行 JAVA 程式的時候,會使用到 JAVAC 這支執行檔。 我們需要把這兩個執行檔的路徑設定好,設定方式如下圖所示。把目錄指向目前安裝的 JAVA SDK 目錄的 BIN 子目錄。
我的JAVA的執行檔目錄是 D:\Program Files\Java\sdk1.6.0_16\bin

java

二、編譯JAVA的時候,JAVA.EXE 需要知道目前 JAVA 可使用的類別庫放在何處,這時需要設定 CLASSPATH,設定方式如下圖所示。
我的JAVA的類別庫目錄是 D:\Program Files\Java\sdk1.6.0_16\lib

java

設定了運作的目錄後,再來就是要編寫用文字編輯器寫 JAVA 的程式碼。 文字編輯器可以用NOTEPAD、ULTRAEDIT等文字編輯器。下面就是用記事本編輯 JAVA 程式碼的畫面。

01 myjava.java
01 import java.io.*;
01 public class myjava{
01 	public static void main(String[] args){
01 	    try{
01 	    	FileInputStream file=new FileInputStream("readme.txt");
01 	    	int n,result;
01 	    	while((n=file.available())>0){
01 	    		byte[] Buffer=new byte[n];
01 	    		result=file.read(Buffer);
01 	    		if(result==-1) break;
01 	    		String string=new String(Buffer);
01 	    		System.out.print(string);
01 	    	}
01 	    }	
01 	    catch(IOException e){System.err.println(e);}
01 	    System.out.println();
01 	}
01 }

編輯程式碼後,使用JAVAC.EXE 編譯 JAVA的程式碼(此時產生*.class), 再使用JAVA.EXE執行JAVA(此時執行 *.class,但不用加檔尾 ".class")。

java

以上是使用文字編輯器和主控台編寫並執行 JAVA 的過程。


3 編譯 JAVA

JAVA可以發展成為大的程式,大程式有大程式的撰寫和包裝的方式。 JAVA 也可以作成類別庫 JAR 檔,供JAVA程式使用。 當你的JAVA程式太大的時候,可以把它們壓縮成 JAR 格式的單一檔案,可以直接拿來執行。 所以下面的篇幅我要來介紹 PACKAGE 指令和 JAR 檔。

首先,我規劃的 JAVA PROJECT 的目錄如下:
1. swing 是這個PROJECT 的根目錄。
2. src 是放置 JAVA 原始程式碼的目錄,之後我們所編輯的 JAVA程式碼都會放在這個目錄中。
3. classes 是放置編譯完成的類別檔的目錄,這個目錄的目錄結構會跟 src 一模一樣。
4. lib 是放置類別檔的壓縮檔 JAR 檔的目錄。
5. bin 是放置可以直接執行的 JAR 檔的目錄。
6.xwindow 是放置 JAVA 程式碼 WindowMonitor.java 的目錄,當使用到JAVA 的視窗程式的時候,會用到這個目錄的程式碼。

java

package 指令:
用下面兩個程式碼來說明package的用途。
為了讓 JMain.java 可以使用 WindowMonitor.java 的類別,JMain.java 必須 import xwindow ; 為了讓 JMain.java 可以使用 WindowMonitor.java 的類別,WindowMonitor.java 必須加入 package xwindow;。

01 JMain.java
01 import xwindow.WindowMonitor;
01 import java.awt.*;
01 import java.awt.event.*;
01 public class JMain extends Frame implements ActionListener {
01   Button cutButton, copyButton, pasteButton;
01   public JMain() {
01     super("Toolbar Example (AWT)");
01     setSize(450, 250);
01     addWindowListener(new WindowMonitor());
01     Panel toolbar = new Panel();
01     toolbar.setLayout(new FlowLayout(FlowLayout.LEFT));
01     cutButton = new Button("Cut");
01     cutButton.addActionListener(this);
01     toolbar.add(cutButton);
01     copyButton = new Button("Copy");
01     copyButton.addActionListener(this);
01     toolbar.add(copyButton);
01     pasteButton = new Button("Paste");
01     pasteButton.addActionListener(this);
01     toolbar.add(pasteButton);
01     add(toolbar, BorderLayout.NORTH);
01   }
01   public void actionPerformed(ActionEvent ae) {
01     System.out.println(ae.getActionCommand());
01   }
01   public static void main(String args[]) {
01     JMain thisframe = new JMain();
01     thisframe.setVisible(true);
01   }
01 }
01 xwindow\WindowMonitor.java
01 package xwindow;
01 import java.awt.event.*;
01 import java.awt.Window;
01 public class WindowMonitor extends WindowAdapter{
01     public void WindowMonitor(){}
01 	public void windowClosing(WindowEvent e){
01 		Window w=e.getWindow();
01 		w.setVisible(false);
01 		w.dispose();
01 		System.exit(0);
01 	}
01 }

為了編譯這兩支 JAVA 程式碼,要再寫一個批次檔 makejava.bat 。
編譯 JAVA 的程式碼時,必須在程式碼的根目錄 src 執行編譯工作,"cd src" 就是進入程式碼根目錄的動作。 進到程式碼的根目錄後,開始編譯的工作,一行編譯一個檔案,從最遠的檔案開始編譯,最後才編譯 JMain.java。編譯完成後,退回到 JAVA PROJECT 的根目錄 swing。

   makejava.bat
01 cd src
01 javac -d c:\code\java\swing21\classes c:\code\java\swing21\src\xwindow\WindowMonitor.java
01 javac -d c:\code\java\swing21\classes c:\code\java\swing21\src\JMain.java
01 cd ..

最後,讓我們到類別根目錄 classes 執行剛剛編譯好的程式碼吧。

java

JAR 檔:
JAVA 程式碼經過編譯的過程後會產生 *.class,這是 JAVA 的執行碼。 當程式變大,檔案變多的時候,可以使用 JAR 的方式,把許多 class 檔壓縮成一個或數個 JAR 檔,方便管理。 甚至也可以直接用 JAR 檔執行 JAVA的程式。

在 PROJECT 根目錄,使用下列指令可以生成 JMain.jar,JAVA 的類別庫。
./lib/JMain.jar 指明要產生的 JAR 檔將要放置的位置是 lib 目錄下的 JMain.jar,而來源的類別檔是 classes 目錄下的所有類別檔,包含子目錄中的所有類別檔。

   makelib.bat
01 jar cvf ./lib/JMain.jar -C classes /

使用這個 JAR 執行 JAVA 的方法如下,必須在 JMain.jar 後面加上 JMain,以指明要執行的類別名稱。

java

可直接執行的 JAR 檔:
在壓縮成 JAR 檔的時候,指明 manifest.txt 檔,這樣就生成可以直接執行的 JAR 檔。

manifest.txt 的內容如下:

   manifest.txt
01 Main-Class: JMain

產生 JAR 的批次檔內容如下:
./lib/JMain.jar 指明要產生的 JAR 檔將要放置的位置是 lib 目錄下的 JMain.jar , manifest.txt 指明內定執行的類別名稱, 而來源的類別檔是 classes 目錄下的所有類別檔,包含子目錄中的所有類別檔。

   jarexecutable.bat
01 jar cvfm ./bin/JMain.jar manifest.txt -C classes /

使用這個 JAR 執行 JAVA 的方法如下圖所示,因為在 manifest.tst 中就已經指明要執行的類別名稱了,所以直接執行 JAR 即可。

java

4 使用 ECLIPSE

可以用 ECLIPSE 這套軟體來編寫並執行 JAVA 程式。ECLIPSE 可以到 HTTP://WWW.ECLIPSE.ORG/DOWNLOADS/ 下載, 有支援 C/C++ 和 JAVA 的版本,要下載 JAVA 的版本才可以。

java