あなたが指摘しているFAQは、NetBeansモジュールを難読化するためのものです。これは非常に複雑なユースケースであるので、私はそれはあなたが興味のある通常のアプリケーションではないことを前提としています
非常に簡単に:。難読化プロセスは、それがより困難にするために、クラス、メソッドやフィールドの名前を変更しますアプリケーションをリバースエンジニアリングする必要があります。
これは、いくつかの問題が発生します。
- JVMは、パブリッククラスのパブリック静的な無効メイン(文字列の引数[])を持っているあなたのアプリケーションを必要とするので、あなたは
この名前を変更しないProGuardのを伝える必要があります
- あなたがイントロスペクションの任意の並べ替えを使用している場合は、手動
Additionallで説明したように、あなたは、
other casesを変更され、関連する名前を保護する必要がありますproguardは未使用のコードを取り除きます。使用されているが直接参照されていないクラスがある場合は、-keep
も必要です。 プロガイドのドキュメントには、単純なアプリケーションを難読化する方法のexampleが含まれています。ここでは(いくつかのより少ない混乱名前で)説明した例である:
-injars application.jar # obfuscate all the classes in the named jars
-outjars obfuscated.jar # save all the obfuscated classes to the named jar
-libraryjars <java.home>/lib/rt.jar # these are all the libraries that the application uses
-printmapping obfuscation.map # save a file linking the original names to the obfuscated ones
# this helps understanding stack traces from the obfuscated application
# we need to keep our main class and the application entry point
-keep public class com.mycompany.Application {
public static void main(java.lang.String[]);
}
あなたが-dontshrink
を指定しない限り、ProGuardのは、任意のコード保たれていないか、いずれかのままのコードから参照されていないを削除します。したがって、上記の設定では、メインメソッドによって(間接的に)参照されないコードはすべて削除されます。
Proguardには、NetBeansワークフローとの統合に使用できるAntタスクが含まれています。私はAntを使わないで手作業で最初に試してみることをお勧めします。 NetBeansを使用してアプリケーションjarをビルドし、上記の設定で難読化しようとします(必要に応じてfleshed)。無数のものが間違っている可能性があるので、難読化されたアプリケーションをテストしてください。 Proguardの設定が完了したら、ビルドファイルにAntタスクを追加して、NetBeans内の難読化プロセスを自動化してみてください。
あなたはどちらそのページのビットを理解していませんか?あなたはAntを理解していますか? –