javajar混淆(混淆后的java代码能还原吗)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享javajar混淆的知识,其中也会对混淆后的java代码能还原吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

java jar包冲突怎么解决

由于,lib目录中的 struts.jar 和 struts-core-1.3.8.jar 存在冲突

导致部分服务器上应用启动报错,或访问后台JSP页面时报TILES标签错误,

经排查,其实struts.jar中的class文件在

struts-core-1.3.8.jar

struts-taglib-1.3.8.jar

struts-tiles-1.3.8.jar

中均已存在,且版本要高于struts.jar中的class

struts.jar为version1.0

而struts-core-1.3.8.jar,truts-taglib-1.3.8.jar,struts-tiles-1.3.8.jar为version1.2

在struts1.2中引用tiles tld的写法发生变化

故解决办法如下:

1.去掉原strtus.jar

2.去掉struts-tiles.tld

3.将所有JSP页面中的

%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%

改为

%@ taglib uri="" prefix="tiles"%

如何使用Android Studio打包混淆的Jar

使用AS打包混淆Jar包,百度一下,一片一片的,但是很多都是零零散散的写得不是很详细或是直接拷贝,按照他们的教程测试总不是很顺利,所以这里我就把我个人学习AS打包混淆Jar的成果总结出来,希望对大家有帮助。个人觉得写得还是比较详细的

使用gradle混淆打包Jar

使用AS开发项目,引入第三方库是非常方便的,我们只需要在build.gradle中配置一行代码就可以轻松引入我们需要的开发库。那么gradle可以帮我们混淆打包Jar吗?答案是当然可以!

那么我们如何打包Jar呢?其实我们在编译项目的时候,AS已经帮我们在目录build/intermediates/bundles/release/classes.jar打好了Jar。那么我们需要做的就是把Jar进行混淆的工作了。这里以个人项目bannerDemo 为例,混淆步骤如下:

在你的library的build.gradle文件中加入如下代码:

task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {

// 未混淆的jar路径

injars 'build/intermediates/bundles/release/classes.jar'

// 混淆后的jar输出路径

outjars 'build/outputs/cocolove2-banner-1.1.0.jar'

// 混淆协议

configuration 'proguard-rules.pro'}

配置混淆协议

1.我们先把AS自带的协议配置进来中文注释,笔者添加

# This is a configuration file for ProGuard.# Starting with version 2.2 of the Android plugin for Gradle, these files are no longer used. Newer# versions are distributed with the plugin and unpacked at build time. Files in this directory are# no longer maintained.#表示混淆时不使用大小写混合类名-dontusemixedcaseclassnames#表示不跳过library中的非public的类-dontskipnonpubliclibraryclasses#打印混淆的详细信息-verbose# Optimization is turned off by default. Dex does not like code run# through the ProGuard optimize and preverify steps (and performs some# of these optimizations on its own).-dontoptimize##表示不进行校验,这个校验作用 在java平台上的-dontpreverify# Note that if you want to enable optimization, you cannot just# include optimization flags in your own project configuration file;# instead you will need to point to the# "proguard-android-optimize.txt" file instead of this one from your# project.properties file.-keepattributes *Annotation*

-keep public class com.google.vending.licensing.ILicensingService-keep public class com.android.vending.licensing.ILicensingService# For native methods, see class * {

native methods;

}# keep setters in Views so that animations can still work.# see public class * extends android.view.View {

void set*(***);

*** get*();

}# We want to keep methods in Activity that could be used in the XML attribute onClick-keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}# For enumeration classes, see enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

-keepclassmembers class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator CREATOR;

}

-keepclassmembers class **.R$* {

public static fields;

}# The support library contains references to newer platform versions.# Don't warn about those in case this app is linking against an older# platform version.  We know about them, and they are safe.-dontwarn android.support.**# Understand the @Keep support annotation.-keep class android.support.annotation.Keep-keep @android.support.annotation.Keep class * {*;}-keepclasseswithmembers class * {

@android.support.annotation.Keep methods;

}

-keepclasseswithmembers class * {

@android.support.annotation.Keep fields;

}

-keepclasseswithmembers class * {

@android.support.annotation.Keep init(...);

}

2.AS自带的配置文档还是不够的,我们还需要加入如下配置

这里只展示基本操作,在实际开发中可能需要更多依赖,要根据具体情况引入自己需要的依赖包

#下面代码中的xx是指我个人的配置路径,涉及个人信息,这里以xx代替

#引入依赖包rt.jar(jdk路径)

-libraryjars /xxx/xx/xx/jdk1.8.0_77.jdk/Contents/Home/jre/lib/rt.jar

#引入依赖包android.jar(android SDK路径)

-libraryjars /xx/xx/xx/Android/sdk/platforms/android-24/android.jar

#如果用到Appcompat包,需要引入

-libraryjars /xxx/xxx/xx/xxx/MyApplication/library-banner/build/intermediates/exploded-aar/com.android.support/appcompat-v7/24.1.1/jars/classes.jar

-libraryjars /xx/xx/xx/xx/MyApplication/library-banner/build/intermediates/exploded-aar/com.android.support/support-v4/24.1.1/jars/classes.jar

#忽略警告

-ignorewarnings

#保证是独立的jar,没有任何项目引用,如果不写就会认为我们所有的代码是无用的,从而把所有的代码压缩掉,导出一个空的jar

-dontshrink

#保护泛型

-keepattributes Signature

3.加入自己不想混淆的配置根据实际需求配置

-keep class com.cocolove2.library_banner.view.**{*;}

在命令行执行命令混淆Jar,提示BUILD SUCCESFUL表示成功!

//mac./gradlew makeJar//windowsgradlew makeJar

示例展示

我这里以混淆library-banner 库为例

1.首先我们要看看下我们的buildTool的配置,如下图:

buildTools#Gradle

如果你的项目的buildTool#Gradle配置如上图,那你打包混淆的第一步已经完成了,而如果选择的是本地的gradle,当你执行./gradlew

makeJar时,系统会先下载gradle,不知是网络不好还是被墙掉了,我每次尝试下载都是等了很久,最终也没成功。

2.在项目目录下执行./gradlew makeJar打包输出混淆的Jar,如下图

QQ20160827-0@2x.png

QQ20160827-1@2x.png

3.查看混淆结果.

QQ20160827-2@2x.png

混淆报错解决办法个人遇到的

#log提示缺少依赖Jar,或者路径不对

解决办法:乖乖的引入缺少的依赖jar和修改路径

#提示如下异常[INFO] java.io.IOException: Can't read [D:\Program

Files\Java\jdk1.8.0_91\jre\lib\rt.jar] (Can't process class [com/oracle/net/Sdp$1.class] (Unsupported class version number

[52.0] (maximum 51.0, Java 1.7)))

解决办法:

下载最新proguard(支持Java 8的版本),然后将下载的文件解压。

将andorid sdk/tools/proguard/lib中的jar包,替换为刚下载解压文件中的lib包。

proguard5.2.1下载地址

阅读

JAVA 有对源代码进行混淆的混淆器么

不需要对源代码混淆。class有这种功能的,在J2ME中混淆是必须的,结果跟你说的一样,不过原理不是你那么走的,混淆以后的class反编译也会让人看不懂,全部变成了a,b,c,d这样的名字。

求教Java web项目一般怎样做代码混淆或加密

一、java web项目混淆

proguard4.8工具,说是支持war的,可混淆过后少了classes目录了,自然成功不了。网上搜的过程不详说了,最后找着--“J2EE-web工程ProGuard代码混淆07_28”,网址:

根据提示一步步完成。

把web项目打成jar包后用proguard进行混淆,然后把混淆过后的class目录替换发布包war中的对应目录,启动运行是正常的。

主要注意利用proguard生成xxx.pro文件,然后手动加工-keep class WebRoot.WEB-INFO.lib.* 等项目中不需要混淆的包和类。

二、java web项目打成.exe

没找到免费的,这搜到个收费的--Jinstall,试了下功能挺好,

可以加密、集成jdk、tomcat,如果数据库是mysql也集成,其他数据库的话要设置数据库的url.

关于javajar混淆和混淆后的java代码能还原吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-03 14:04:21
收藏
分享
海报
40
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了