1
ProGuard 버전 5.3.3을 사용하여 실행 파일을 난독 화합니다.ProGuard는 건너 뛴 클래스를 수정 (크기 증가)
My jar에는 난독 화하거나 최적화하고 싶지 않은 다른 라이브러리가 들어 있습니다.
-libraryjars 'C:\Program Files\Java\jre1.8.0_131\lib\rt.jar'
-injars myjar-debug.jar
-outjars myjar-release.jar
-skipnonpubliclibraryclasses
-dontoptimize
-dontshrink
-useuniqueclassmembernames
-keeppackagenames org.**
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
-ignorewarnings
-keep class org.** { *; }
-keepclassmembers class org.** { *; }
-dontwarn org.**
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
-keepclasseswithmembers class * {
native <methods>;
}
-keepclasseswithmembernames class * {
native <methods>;
}
난처 완벽하게 잘 작동하고 항아리를 실행에 오류가 없는지 :
이 내 ProGuard에서의 설정입니다. 그러나 원래의 jar와 난독 화 된 jar를 비교하면 ProGuard가 패키지 org.**
내의 클래스를 수정 한 것을 볼 수 있습니다. 대부분의 클래스 파일 크기는 원래 크기보다 큽니다.
나는 ProGuard에서 모두에서 이러한 파일을 수정하지 않습니다. org.**
에있는 클래스 파일의 바이너리가 정확히 동일하도록이 패키지를 완전히 제외하려면 어떻게해야합니까?
를 사용하는 것에 비해 쉽게 당신의 인생을 만들 것입니다 받는다는/Gradle을 사용하는 경우
나는 확실하지 않다? –
어느 정도는 가능합니다. 뚱뚱한 (실행 가능한) jar 파일을 생성하기 전에 먼저 obfuscate하면 jar 파일에 소스 코드 만 포함되므로 실행 가능한 jar 파일을 만드는 프로세스가 종속 파일을 번들에 포함하게됩니다. – Shailesh