Package

      在〈Package〉中尚無留言

Package的功用

當程式愈寫愈長, 就會想把獨特的功能獨立出來成一個 .java檔案, 也就是產生一個 public class的概念. 但又當檔案愈來愈多時, 同時放在同一個目錄下, 雜亂而無法管理.

為了管理這些雜亂且為數極多的檔案, 使用目錄進行管理是最佳的方案. 比如把音樂放在music的目錄下, 把影片放在movie的目錄下

Package其實就是目錄, 使用目錄作為分類. 如下圖所示, 是一個照像機的專案, 除了拍照外, 還需記錄拍照的地點, 所以必需啟動GPS抓取當地經緯度. 拍照其實相當複雜, 需初始化照像機, 對焦, 拍照, 儲存照片等. GPS亦需初始化, 開啟, 定位, 回報等.

java_package1

上圖的Camera, GPS就是二個目錄, 在Java的術語就是Package.

標註方式

在每個檔案的第一行, 標註所在目錄即可, 比如 package Camera;

import

如果在Camera裏要使用GPS目錄下的 .java檔, 那就要在Camera的檔案裏輸入 import GPS.*

Packages

管理類別的方式有很多種, 他們都沒有對與錯. 而Java採用了package來組織管理類別. 類別裏的package, 描述了此類別所在的目錄. 比如在Pikachi.class中載明package role.pokemon, 則表示Pikachi是位於pokemon的目錄之下, 而pokemon又為於role的目錄之下

在其他的package若要使用Pikachi, 有三種方式

一. 打上路徑, 如
role.pokemon.Pikachi.setWeight();
java.lang.System.out.println();

二. 使用import, 如
import role.pokemon.Pikachi
import static java.lang.System.out;

三. 設定classpath
於系統的環境變數中, 設定CLASSPATH變數

java.lang.*為基礎類別函式庫, Java會自動載入, 所以不需使用import

 JARs and deployment

通常在部署Java應用程式時, 需要將不同package下的多個.class壓縮成一個.jar檔, 這樣才可方便攜帶. Jar非常類似zip檔案,包含了完整的路徑結構,並附加了一個META-INF的目錄, 裏面包含了MANIFEST.MF檔。MANIFEST.MF 檔告訴Java runtime那一個檔包含了main的方法.

使用NetBeans建立jar

在NetBean下要打包成.jar檔, 需先告知main在那個類別裏, 再進行打包

設定main位置 : 在專案按右鍵/Properties/Run/Main class

java_jar1

打包jar : 專案右鍵/Clean and Build

java_jar2

使用Console mode建立jar

jar cvf pokemon.jar mymanifest -C game/.

執行jar檔

java -jar pokemon.jar

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *