Fan page: https://www.facebook.com/JavaFullstackVietNam
Group: https://www.facebook.com/groups/312867776882695
Bài đăng nổi bật
Lập trình Java Spring Boot (20 buổi)
JAVA FULLSTACK VIỆT NAM: Website: javafullstackvietnam.com Fan page: https://www.facebook.com/JavaFullstackVietNam Group: https://www.fac...
Thứ Ba, 29 tháng 12, 2015
Cách sử dụng obfuscated-proguard (đóng gói thư viện java + netbeans8)
1. Tải plugins tại ứng dụng Netbeans8.
Trong menu Tools->plugins (search proguard) --> cài đặt
2. Cấu hình trong file build.xml của project
Copy thẻ xml dưới đây đặt trong thẻ <project> của file build.xml (Chú ý các chú thích màu đỏ)
<target name="-post-jar">
<!-- cấu hình đường dẫn thư viện proguard -->
<property name="proguard.jar.path" value="C:\Projects\MyOwn\Common_Lib\proguard\proguard4.10.jar" />
<!-- cấu hình đường dẫn java home -->
<property name="java.home.path" value="E:\DEV_Tools\JDK_1.7U60" />
<taskdef resource="proguard/ant/task.properties"
classpath="${proguard.jar.path}" />
<echo message="Obfuscating ${dist.jar}..."/>
<mkdir dir="${build.dir}/obfuscated"/>
<proguard printmapping="${build.dir}/obfuscated/${application.title}.map"
renamesourcefileattribute="SourceFile" ignorewarnings="true">
<!-- Specify the input jars, output jars, and library jars. -->
<injar file="${dist.jar}" />
<!-- cấu hình đường dẫn + tên file jar của thư viện -->
<outjar file="${build.dir}/obfuscated/HVA.TESTConnector.jar" />
<libraryjar path="${javac.classpath}" />
<libraryjar file="${java.home.path}/jre/lib/rt.jar" />
<!-- Keep some useful attributes. -->
<keepattribute name="InnerClasses" />
<keepattribute name="SourceFile" />
<keepattribute name="LineNumberTable" />
<keepattribute name="Deprecated" />
<keepattribute name="*Annotation*" />
<keepattribute name="Signature" />
<!-- Preserve all public classes, and their public and protected fields and methods. -->
<keep access="public">
<field access="public protected" />
<method access="public protected" />
</keep>
<!-- Preserve all .class method names. -->
<keepclassmembernames access="public">
<method type ="java.lang.Class"
name ="class$"
parameters="java.lang.String" />
<method type ="java.lang.Class"
name ="class$"
parameters="java.lang.String,boolean" />
</keepclassmembernames>
<!-- Preserve all native method names and the names of their classes. -->
<keepclasseswithmembernames>
<method access="native" />
</keepclasseswithmembernames>
<!-- Preserve the methods that are required in all enumeration classes. -->
<keepclassmembers extends="java.lang.Enum">
<method access="public static"
type="**[]"
name="values"
parameters="" />
<method access="public static"
type="**"
name="valueOf"
parameters="java.lang.String" />
</keepclassmembers>
<!-- Explicitly preserve all serialization members. The Serializable
interface is only a marker interface, so it wouldn't save them.
You can comment this out if your library doesn't use serialization.
With this code serializable classes will be backward compatible -->
<keepnames implements="java.io.Serializable"/>
<keepclassmembers implements="java.io.Serializable">
<field access ="final"
type ="long"
name ="serialVersionUID" />
<field access ="!static !transient"
name ="**"/>
<field access ="!private"
name ="**"/>
<method access ="!private"
name ="**"/>
<method access ="private"
type ="void"
name ="writeObject"
parameters="java.io.ObjectOutputStream" />
<method access ="private"
type ="void"
name ="readObject"
parameters="java.io.ObjectOutputStream" />
<method type ="java.lang.Object"
name ="writeReplace"
parameters="" />
<method type ="java.lang.Object"
name ="readResolve"
parameters="" />
</keepclassmembers>
<!-- Your application may contain more items that need to be preserved;
typically classes that are dynamically created using Class.forName -->
</proguard>
</target>
3. Build lại Project
sau khi copy xong build lại project là bạn đã có một thư viện jar được đóng gói khá an toàn.
Author: HVA
Bài đăng phổ biến
-
Có một tip nhỏ, nếu không biết cũng mất khá nhiều thời gian :D Viết tiếng việt trên pdf sử dụng iText. Description: Dùng font unicode t...
-
- Bài này hướng dẫn cách kết nối HSM từ C#, sử dụng provider RSACryptoServiceProvider. - Khuyến nghị Protect mode key hsm: module - Tất cả...
-
Buổi: Giới thiệu Java và lập trình cơ bản Tổng quan về khóa học: Tuần 1 Buổi 1 Giới thiệu khóa học, cài đặt Inte...
-
Buổi 1: Giới thiệu về Struts Framework Struts Framework là gì? Struts là một framwork mã nguồn mở cho việc phát triển các ứng dụng web bằng...
-
JAVA FULLSTACK VIỆT NAM: Website: javafullstackvietnam.com Fan page: https://www.facebook.com/JavaFullstackVietNam Group: https://www.f...
-
Hôm nay mình đã làm xong các thủ tục để được miễn thuế thu nhập cá nhân (TNCN) khi bán nhà. Thủ tục hơi loằng ngoằng (ko có quy định mẫu b...
-
Tháng trước phải tháo 2 con điều hòa, sau khi tự tìm hiểu thấy tháo cực kỳ đơn giản. Tiện thể note lại có khi có người cần. Sơ qua về cục...
-
Các bước chính để cấu hình https cho webserver trên môi trường IBM WAS7.0 A. Mục đích: cấu hình 1 webserver test trên môi trường local w...
-
#check HTTPConnector mqsireportproperties TESTNODE_anhhv -e default -o HTTPConnector -r mqsireportproperties AgrUAT ...
-
JAVA FULLSTACK VIỆT NAM: Website: javafullstackvietnam.com Fan page: https://www.facebook.com/JavaFullstackVietNam Group: https://www.fac...