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ả...
-
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...
-
Hôm trước debug asp.net trên VS2005 dính lỗi ngớ ngẩn với IE9, không tài tài bật được chức năng debug. Mãi mới biết. chỉ cần trước khi debug...
-
Trong phần này mình hướng dẫn cấu hình rotate log cho access_log và error_log Trong thư mục File cấu hình http server: /opt/IBM/WebSphe...
-
Cảnh Nhàn Tác giả: Nguyễn Bỉnh Khiêm Một mai, một cuốc, một cần câu Thơ thẩn dầu ai vui thú nào Ta dại, ta tìm nơi vắng vẻ Ng...
-
GIẢN ĐƠN (Thơ: An Nhiên) Nếu có thể đừng than chi số phận Gạt nỗi buồn vướng bận gió cuốn đi Đời ngắn lắm yêu thương còn chưa đủ Sao bận lòn...
-
Sống Tác giả: Chưa biết Sống không giận, không hờn, không oán trách Sống mỉm cười với thử thách chông gai Sống vươn lên theo kịp ánh ban ma...
-
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...