3


建立混淆器外掛程式

Sun Java Wireless Toolkit for CLDC 可讓您使用位元碼混淆器,來縮小 MIDlet 套件 JAR 檔案的大小。本工具組支援 ProGuard,如「Sun Java Wireless Toolkit for CLDC 使用者指南」所述。

如果要使用其他混淆器,您可以為 Sun Java Wireless Toolkit for CLDC 撰寫外掛程式。


3.1 撰寫外掛程式

混淆器外掛程式會延伸 com.sun.kvem.environment.Obfuscator 介面。此介面本身包含於 toolkit\wtklib\kenv.zip 中。

Obfuscator 介面包含您必須實作的兩個方法:

若要編譯您的混淆器外掛程式,請確定將 kenv.zip 加入您的 CLASSPATH

例如,以下是一個非常簡單的外掛程式原始碼。它不會真的呼叫混淆器,但可以示範如何實作 Obfuscator 介面。


import java.io.*;
public class NullObfuscator
    implements com.sun.kvem.environment.Obfuscator {
  public void createScriptFile(File jadFilename, File projectDir) {
    System.out.println("NullObfuscator:createScriptFile()");
  }
 
  public void run(File jarFileObfuscated, String wtkBinDir,
    String wtkLibDir, String jarFilename, String projectDir,
    String classPath, String emptyAPI) throws IOException {
      System.out.println("NullObfuscator:run()");
    }
}

 

假設將此程式碼儲存成 toolkit\wtklib\test\NullObfuscator.java,即可在指令行使用類似下列指令進行編譯:

set classpath=%classpath%;toolkit\wtklib\kenv.zip
javac NullObfuscator.java


3.2 配置工具組

混淆器外掛程式撰寫完成之後,您必須將其位置告訴工具組。若要執行此動作,請編輯 toolkit\wtklib\Windows\ktools.properties。編輯混淆器外掛程式的類別名稱,並將類別的位置告訴工具組。如果您要照著範例一起做,請依照下列方式編輯特性:

obfuscator.runner.class.name:NullObfuscator
obfuscator.runner.classpath:wtklib\\test

重新啟動工具組,並開啟專案。接著選擇 [專案] > [封裝] > [建立模糊化封裝]。主控台會顯示 NullObfuscator 輸出,如下所示:

Project settings saved
Building "Tiny"
NullObfuscator:createScriptFile()
NullObfuscator:run()
Wrote C:\WTK252\apps\Tiny\bin\Tiny.jar
Wrote C:\WTK252\apps\Tiny\bin\Tiny.jad
Build complete