語言

Pack200 類別

定義

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

[Android.Runtime.Register("java/util/jar/Pack200", DoNotGenerateAcw=true)]
public abstract class Pack200 : Java.Lang.Object
[<Android.Runtime.Register("java/util/jar/Pack200", DoNotGenerateAcw=true)>]
type Pack200 = class
    inherit Object
繼承
屬性

備註

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。 請參閱網路傳輸格式 JSR 200 規範 http://jcp.org/aboutJava/communityprocess/review/jsr200/index.html

通常,應用程式開發者會使用打包引擎來部署或架設 JAR 檔案到網站上。 解包引擎被部署應用程式用來將位元組串流轉換回 JAR 格式。

以下是一個使用 packer 和 unpacker 的範例:

{@code
               import java.util.jar.Pack200;
               import java.util.jar.Pack200.*;
               ...
               // Create the Packer object
               Packer packer = Pack200.newPacker();

               // Initialize the state by setting the desired properties
               Map p = packer.properties();
               // take more time choosing codings for better compression
               p.put(Packer.EFFORT, "7");  // default is "5"
               // use largest-possible archive segments (>10% better compression).
               p.put(Packer.SEGMENT_LIMIT, "-1");
               // reorder files for better compression.
               p.put(Packer.KEEP_FILE_ORDER, Packer.FALSE);
               // smear modification times to a single value.
               p.put(Packer.MODIFICATION_TIME, Packer.LATEST);
               // ignore all JAR deflation requests,
               // transmitting a single request to use "store" mode.
               p.put(Packer.DEFLATE_HINT, Packer.FALSE);
               // discard debug attributes
               p.put(Packer.CODE_ATTRIBUTE_PFX+"LineNumberTable", Packer.STRIP);
               // throw an error if an attribute is unrecognized
               p.put(Packer.UNKNOWN_ATTRIBUTE, Packer.ERROR);
               // pass one class file uncompressed:
               p.put(Packer.PASS_FILE_PFX+0, "mutants/Rogue.class");
               try {
                   JarFile jarFile = new JarFile("/tmp/testref.jar");
                   FileOutputStream fos = new FileOutputStream("/tmp/test.pack");
                   // Call the packer
                   packer.pack(jarFile, fos);
                   jarFile.close();
                   fos.close();

                   File f = new File("/tmp/test.pack");
                   FileOutputStream fostream = new FileOutputStream("/tmp/test.jar");
                   JarOutputStream jostream = new JarOutputStream(fostream);
                   Unpacker unpacker = Pack200.newUnpacker();
                   // Call the unpacker
                   unpacker.unpack(f, jostream);
                   // Must explicitly close the output.
                   jostream.close();
               } catch (IOException ioe) {
                   ioe.printStackTrace();
               }
            }

用 gzip 壓縮的 Pack200 檔案可以託管在 HTTP/1.1 網頁伺服器上。 部署應用程式可以使用「Accept-Encoding=pack200-gzip」。 這表示伺服器需以 Pack200 編碼並進一步壓縮 gzip 的檔案版本。 請參閱 Java 部署指南以獲得更多細節與技巧。

除非另有說明,將參數傳遞 null 給此類別中的建構子或方法會導致拋出 a NullPointerException

已在1.5中新增。

Java 文件 java.util.jar.Pack200

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
Pack200(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

名稱 Description
Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
JniPeerMembers

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

方法

名稱 Description
Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
Equals(Object)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()
已淘汰.

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
NewPacker()

取得一個實作 Packer 的類別新實例。

NewUnpacker()

取得一個實作 Unpacker 的類別新實例。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

將 JAR 檔案轉換為或從 Pack200 格式的打包串流。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於