1. 程式人生 > >Java中如何使封裝自己的類,建立並使用自己的類庫?

Java中如何使封裝自己的類,建立並使用自己的類庫?

Java中如何使封裝自己的類,建立並使用自己的類庫?

該文轉載SmilingSunrise的文章:http://blog.csdn.net/luoweifu/article/details/7281494

一、先來明白一下關於classpath和path的概念

path是java中用來進行編譯和執行的程式所在的路徑,而classpath是類所在的路徑。安裝JDK之後,你應當設定好path和classpath路徑。現在假設你JDK是安裝在D:\IT\JDK6.0\java(TM) SE Development Kit下(因為我自己的是安裝在此目錄下),那麼你要設定的path路徑就是這個路徑下的bin資料夾,即D:\IT\JDK6.0\java(TM) SE Development Kit\bin,因為bin資料夾下里面有javac.exe和java.exe(就是java中用來進行編譯和執行的程式)。設定的方法如下:

1.開啟“我的電腦\高階\環境變數”,如果是win7,則是:““計算機\屬性\系統屬性\高階環境變數”,開啟如圖一,

圖一

雙擊“系統變數”下的path,把D:\IT\JDK6.0\java(TM) SE Development Kit設定進去,如圖二

圖二

開啟命令提示符,輸入javac,如果有一連串的文字,則說明設定成功。順便說一下常用的命令提示符:javac 編譯java檔案,java執行java檔案,java –version查詢JDK的版本,包路徑+“-cvf”+ className.java 打成Jar包,

2.接下來是接著設定classpath,假設你的java檔案是在E:java資料夾,則可這樣設定:如圖三,後面有一點表示當前路徑,這樣的話你可以再任何路徑下用javac編譯java檔案。

圖三

3.如果你現在又一個打包好的jar檔案(如何達成jar包後面會講),現在要使用jar包裡的類,則需要將jar包設定成classpath變數。假設你有一個自己tools.jar包,放在D:\IT\JDK6.0\java(TM) SE Development Kit\myJar,則需要將D:\IT\JDK6.0\java(TM) SE Development Kit\myJar\tools.jar設定到classpath中,如圖四

圖四

此時,你就可以在類中引用tools.jar中的類了,只需要在類中將其引入。以上操作在win7可能還出問題,還需要設定使用者變數裡的classpath(為什麼會這樣,我也不值得,希望共同探討)。注意在圖一中是有“Adiministrator使用者變數”和“系統變數的”,這是隻需按照圖四將D:\IT\JDK6.0\java(TM) SE Development Kit\myJar\tools.jar設定到使用者變數裡的classpath中去就行。

      二、在Eclipse中如何打成jar包?生自己的類庫

Eclipse和MyEclipse是目前最流行的java整合開發環境,如果你用的是其他的開發工具,建議你嘗試著用一下Eclipse進行開發,因為它功能很強大,很好用。下面就介紹一下如何在Eclipse下將自己寫好的類打成jar包,生成自己的類庫。

假設當前的文件結構這樣的:

圖五

右擊專案檔案Tool,選擇Export,開啟對話方塊,選擇Java\JAR file後下一步,如果你只需要打包cn.edu.jxau.tools下的類,只需要選擇該類即可,如圖六

圖六

在JAR file中選擇要匯出的路徑和檔名,如圖圖七

圖七

點選“下一步”、“下一步”,然後Main class中選擇包含main函式(如果有面函式的話),然後點選完成(finish)。

三、為自己的類生成註釋文件,即生成javadoc檔案。

第二的介紹可以生成自己的類庫了。但是時間久自己寫的類和方法就會忘記,生成一個高質量的註釋文件就很有必要的。慶幸的是Java自己就能很好的完成這一功能,能幫我們生成類似API的文件,即javadoc文件。下面介紹一下在Eclipse中如何生成javadoc文件:

1、對類進行註釋

在生成javadoc文件之前首先要對類進行註釋。註釋有如下三種方式:

a,//註釋內容;b,/*註釋內容*/;(快捷鍵:選中要註釋的內容後按“shift+Ctrl+/”,取消註釋是“shift+Ctrl+\”)

c,

/**

*註釋內容。

*/

其中只有c方式在生成javadoc中才有用。以我自己寫的ArrayQueue類為例說明一下幾種註釋,只需要對public方法和變數進行註釋,因為只有public型別才能被其他類訪問。

(1)、在類前面註釋類說明和創作者,如

/**

 * 檔案的複製,字串輸入到檔案中,將檔案內容列印到控制檯

 *

 * @author xiaoxu

 *

 */

(2)、在public方法前面註釋方法的說明,如public static String readFile(File file)方法註釋:

/**

    * 讀取一個檔案裡的內容

    *

    * @param file

    *            要讀的檔案

    * @return 返回讀取檔案的字串

 */

(3)、註釋對public變數進行註釋,假設有一表示視窗寬度的變數WIDTH,如下注釋

/**

    * 主視窗的寬度

    */

   public static final int WIDTH = 1000;

部分結果如下

圖八(1)

2、用Eclipse生成javadoc文件

選中要生成javadoc文件的專案,再在選單欄中的選擇菜project\Generate Javadoc…。開啟對話方塊後“javadoc command”的預設路徑是C:\jdk\bin\javadoc.exe,如果沒有該路徑就自己新增,找到自己安裝JDK的根目錄下的bin\javadoc.exe,如下圖

圖8(2)

選擇要生成javadoc的檔案,然後選擇匯出的路徑,一般選擇預設的專案下的doc資料夾,改成其他路徑可能會有錯。如下:


圖8(3)

之後就一路next,最後點finish就OK了。在這期間可能會出現警告,如下圖


圖8(4)

選擇“Yes To All”。

四、如何使用自己建立的類庫?

通過一、二、三,已經能夠建立自己的類庫了。下面說明一下如何使用自己的類庫。

方法一:

假設現在要建立一個專案Test,裡面要用到自己類庫tools.jar中的S類。新建一個類Test.java,裡面的main方法是這樣的:

public static void main(String[] args) {

   S.pl("java");  //S類中的S.pl()封裝了System.out.println(obj);

}

這時Eclipse會報錯,會說S這個類不存在,是否要建立這個類。這是因為預設的JRE並不存在tools.jar這個包,如圖八。

圖八(5)

那麼如何將這個包夾道預設的JRE System Library中呢?

選擇Window\ Preferences,開啟對話方塊,選擇Java\Installed JREs,如圖九

圖九

接下來,點選“Add”新增一個新的JRE,選擇Standard VM後點擊下一步,在JRE home中點選Directory選擇JDK按鈕路徑下的jre資料夾(即包含rt.jar的資料夾,rt.jar是jdk的根資料夾,裡面包含了所有的基本類)如圖,然後點選“Add External JARs”選擇生成好的tools.jar檔案(最好先別tools.jar放在一個比較訪問,比較安全的資料夾內,我的是直接放在JDK安裝路徑下的D:\IT\JDK6.0\java(TM) SE Development Kit\myJar裡),如圖十

圖十

點選finish。

   然後,在Test專案中將預設的JRE System Library換成剛剛配置好的JRE,右擊Test選擇Build Path選擇Configure Build Path…,開啟對話方塊,將原有的JRE Remove掉,然後Add Library,選擇JRE System Library,下一步,點選“Installed JREs”後選擇剛剛配置好的那個JRE,點選finish。

現在就配置好了。此時的JRE就能看到tools.jar檔案,如下圖:

圖十一

方法二:

將剛剛生成的自己的類庫Tool.jar直接拷貝到JDK和JRE的安裝目錄中的jre/lib/ext/中,這時候我們需要重啟一下Eclipse,這樣才能將剛才的那個包載入進自動生成的系統庫中。

方法三:

當然除以上方法之外,也可以直接在單個專案中通過"bulid path"匯入External Jar,額外的jar包。

相關推薦

Java(1) Java如何使封裝自己建立使用自己

Java中如何使封裝自己的類,建立並使用自己的類庫?            ——感謝您的閱讀,本篇文章轉載自以下連結,支援原創,人人有責。 http://blog.csdn.net/luoweifu/ar

Java如何使封裝自己建立使用自己

Java中如何使封裝自己的類,建立並使用自己的類庫? 該文轉載SmilingSunrise的文章:http://blog.csdn.net/luoweifu/article/details/7281494 一、先來明白一下關於classpath和path的概念 p

Java如何封裝自己建立使用自己

Java中如何使封裝自己的類,建立並使用自己的類庫?  ——感謝您的閱讀,轉載請標明出處! 隨著自己的程式設計經歷的積累會發現往往自己在一些專案中寫的類在別的專案中也會有多次用到。你肯定會想:如何自己的寫的一些常用的類積累起來,生成自己的類庫?如果是這樣的話,很慶幸,

Java使用字節流讀取文本內容

length inpu pre puts output 寫入 log oid cnblogs package cn.jbit.inputstream; import java.io.File; import java.io.FileInputStream; import

java無法找到主方法無法找到web應用第一次報500第二次報404

在重灌機器後,原來的許多java工程在重新被新安裝的Eclipse讀取過程中出現了java.lang.NoNoClassDefFoundError的問題,檢視工程目錄中bin路徑下沒有生成對應的.class文件網上查閱了很多資料,大部分都指示classpath設定不對。但是Eclipse本身並不需要配置cla

javaNaN和Infinity基本資料型別和包裝(doubleDouble)

java浮點數運算中有兩個特殊的情況:NAN、INFINITY。 1、INFINITY: 在浮點數運算時,有時我們會遇到除數為0的情況,那java是如何解決的呢? 我們知道,在整型運算中,除數是不能為0的,否則直接執行異常。但是在浮點數運算中,引入了無

Flask框架(flask的資料庫SQLAlchemy(python3)配置、模型建立表)

1.  SQLAlchemy是一個關係型資料庫框架,      它提供了高層的ORM和底層的原生資料庫的操作。       flask-sqlalchemy是一個簡化了SQLAlchemy操作的flask擴充套

Java通過反射為建構函式為private的建立物件

在Java中,一般情況下會使用new關鍵字來呼叫類的有參或者無參建構函式來建立一個物件,也可以通過Class.newInstance()方法來呼叫類的無參建構函式來建立一個物件。而如果一個類的建構函式為private 型別,不是public型別的話,那麼new關鍵字和Clas

java使用sax解析xml以實體集合的方式接受xml解析的值

1.先編寫要解析的xml檔案: <?xml version="1.0" encoding="utf-8"?> <class> <stu id="001"> <name>Allen</name> <sex&g

Java什麼時候用介面什麼時候用抽象

一.java介面 1.介面的定義為的關鍵字為interface 2.介面中只能有方法和變數,變數為public static final型別,方法只能被可以為public(預設)和protected修飾,方法不能有具體的實現 3.一個類可以實現多個介面 4.一個類實現介面,

Java封裝

可維護 使用 pri com [] 如果 test 面向 psu 以下內容引用自http://wiki.jikexueyuan.com/project/java/ncapsulation.html: 封裝是面向對象程序設計四大基本概念之一,其余三個分別是繼承,多態和抽象。

Java的會話管理——HttpServletCookiesURL Rewriting(譯)

資源 gets where pre 點擊 相關 商品 另一個 格林尼治 參考谷歌翻譯,關鍵字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url-

java存在垃圾回收機制但是還會有內存泄漏的問題原因是

java 自己 data .so 這樣的 即使 垃圾 ref stack 答案是肯定的,但不能拿這一句回答面試官的問題。分析:JAVA是支持垃圾回收機制的,在這樣的一個背景下,內存泄露又被稱為“無意識的對象保持”。如果一個對象引用被無意識地保留下來,那麽垃圾回收器不僅不會處

java:Set對象TreeSet有序子HashSet無序子重復對象二

hash ceo person system boolean 需要 false tostring 兩個 TreeSet有序子類; HashSet無序子類 重復重復元素,Object對象是通過equals和hashCode來進行過濾的。 如果將上一篇提到中的例子中的TreeS

Java普通代碼塊構造代碼塊靜態代碼塊區別及代碼示例

alt ica 兩個 定義 賦值 dem 重寫 般的 tle Java中普通代碼塊,構造代碼塊,靜態代碼塊區別及代碼示例 對靜態代碼塊以及構造函數的執行先後順序,一直很迷惑,看了孫偉琴老師的《java面向對象編程》又結合畢老師的java基礎視頻中的講解,現用下面的這段小

javanull是什麽以及使用要註意的事項

拆箱 大小寫 pan 沒有 使用 類型 區別 null lean 1.null既不是對象也不是一種類型,它僅是一種特殊的值,你可以將其賦予任何引用類型,你也可以將null轉化成任何類型,例如: Integer i=null; Float f=null; String

關於java創建文件並且寫入內容

tle 數據 www. port end ret 刪除文件 ava json 以下內容完全為本人原創,如若轉載,請註明出自:http://www.cnblogs.com/XiOrang/ 前兩天在項目中因為要通過http請求獲取一個比較大的json數據(300KB左右)

java接口(interface)和虛基(abstract class)的區別

private 特定 知識庫 價值 ceo 實現 相互 定義 協調 在Java語言中,abstract class和interface是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的面向對象能力。abstract class和interface之

java講講InputStreamReader的用法舉例?

stat url ron target system cep may efault rom 2.4 InputStreamReader的用法 (視頻下載) (全部書籍)馬 克-to-win:InputStreamReader 從文字上分析:InputStream是字節流的意

java講講BufferedInputStream的用法舉例?

chapter 開始 stat 視頻下載 col 就是 web exc 緩存 2.3 BufferedInputStream的用法 (視頻下載) (全部書籍)馬克-to-win:BufferedInputStream 顧名思義就是它有一個內部的buffer(緩存),它的re