Jad.exe应该很多朋友用过,也知道其中的用法,我就不在累述了。
自己写了个小批处理是联合winrar用的,主要是解压jar包用的。
::打开/关闭命令行显示
@echo OFF
::::::::::::::::::::::::::::解析并设置变量::::::::::::::::::
::查找jad文件的路径, 这里取的jad.exe, 表示从PATH中查找,如果想手工指定,需在这里修改
set JAD_PATH=jad.exe
::设置解压出的class文件存放的位置(相对路径)
set CLASS_PATH=bin
::设置反编译后的java文件存放的位置(相对路径)
set JAVA_PATH=src
::检查JAD文件是否存在bat所在目录下,
if exist "%~dp0jad.exe" set JAD_PATH=%~dp0jad.exe
::判断参数个数,如果没有文件参数,则报错,这里也可以使用%~f1,也可以用%1,没有关系,之后要去掉引号
if ""%1""=="""" (set /P JAR_PATH=请输入要反编译的JAR包的路径...) else (set JAR_PATH=%~f1)
if '%JAR_PATH:~0,1%%JAR_PATH:~0,1%'=='""' set JAR_PATH=%JAR_PATH:~1,-1%
::获取源代码存放的路径,这里取JAR包所在路径,然后去掉".jar"作为文件夹路径, 这里的LOCATION不能带引号,因为下面还要追加字符)
if ""%2""=="""" (set LOCATION=%JAR_PATH:~0,-4%) else (set LOCATION=%~f2)
::::::::::::::::::::开始执行程序:::::::::::::::::::::::::::::::
::获取WinRAR.exe的路径,设置在临时变量rarpath中
for /f "usebackq delims=" %%i in (`ftype WinRAR`) do set RARPATH=%%i
::对rarpath进行解析,去掉前面7个节符,去掉后面5个字符,得到WinRAR执行路径
::路径大致是这样的形式 Winrar="C:\Program Files\WinRAR\WinRAR.exe" "%1"
set RAREXE=%RARPATH:~7,-5%
::调用WinRAR命令,解压文件到指定目录的bin目录下
%RAREXE% x "%JAR_PATH%" "%LOCATION%\%CLASS_PATH%\"
::遍历整个bin目录,取所有class文件,调用jad.exe反编译出源码,非class的拷贝到src目录下
::打开变量延迟功能
setlocal EnableDelayedExpansion
for /r "%LOCATION%\bin" %%i in (*.*) do if '%%~xi'=='.class' ("%JAD_PATH%" -o -r -sjava -ff -b -nonlb -space -t -8 -d"%LOCATION%\%JAVA_PATH%" "%%~si") else (set TEMP_PATH=%%i & echo f|xcopy "%%i" "!TEMP_PATH:%LOCATION%\bin=%LOCATION%\src!")
endlocal EnableDelayedExpansion
::将产生的java文件压缩成源码文件
%RAREXE% a -ep1 -r "%LOCATION%-src.zip" "%LOCATION%\%JAVA_PATH%\*.*"
::::::::::::::::::程序结束, 显示运行结果::::::::::::::::::::::
echo *********************************************
echo 程序运行结束
echo 解析的JAR包的路径为 %JAR_PATH%
echo 解压缩工具WinRAR.exe的路径为 %RAREXE%
echo 反编译工具JAD.exe的路径为 %JAD_PATH%
echo 解析后的文件的根路径为 %LOCATION%
echo 解析后的class文件存放在 %LOCATION%\%CLASS_PATH%
echo 解析后的java文件存放在 %LOCATION%\%JAVA_PATH%
echo 压缩后的java文件存放在 %LOCATION%-src.zip
echo *********************************************
pause
注意要和jad.exe放在一起,不然你可以根据我写的批处理修改下,我知道你有办法的。
看到很多网友问如何把java编译好了之后的class文件反编译为java可执行文件。
我的方法与大家分享下,有好的办法可以留言于我。
1.把jad.exe和我写的小批处理放在一个文件夹下
2.把需要代反编译的class文件也放在这个文件夹下面。
3.打开jad看里面有什么用法
4.利用:jad -s java *.class命令来完成反编译
5.得到你所想要的java文件。
- 大小: 16.1 KB
- 大小: 48.9 KB
- 大小: 18.9 KB
分享到:
相关推荐
JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA...
Java反编译工具是程序员在开发和调试过程中经常会用到的一种实用软件,它能够将已编译的Java字节码(.class文件)转换回源代码格式,这对于查看和理解第三方库或者研究已有的二进制代码非常有帮助。本绿色版的Java反...
虽然反编译的结果可能与原始的.java文件略有不同,但大部分情况下仍然能理解代码的逻辑和结构。 JAD是另一个知名的Java反编译工具,它提供命令行接口,适合于自动化脚本或者集成到其他工具链中。FernFlower则是一个...
**Procyon** 是一个全面的Java编译器和反编译器套件,除了反编译功能,它还支持编译和语法分析。Procyon生成的源代码质量高,尤其是在处理Java 8及更高版本时表现优秀。 反编译在以下场景中尤其有用: 1. **代码...
"JAVA反编译包_小茶杯_jd-gui-1.6.6.jar.7z" 是一个包含Java反编译工具JD-GUI的压缩包,版本为1.6.6,由"小茶杯"社区提供。JD-GUI是一个独立的图形用户界面工具,它能够直接打开并显示Java字节码的源代码。 JD-GUI...
本篇文章将介绍一个名为"java反编译小工具"的程序,该工具可能是为简化这个过程而设计的。 首先,我们提到的"java反编译.exe"很可能是这个工具的可执行文件,用于在Windows操作系统上运行。通常,.exe文件是Windows...
Java反编译是Java开发中一个重要的辅助工具,它能够帮助开发者查看已编译的`.class`文件中的源代码,即使原始的`.java`源文件已经丢失或未被提供。这个过程对于理解类库的工作原理、逆向工程、调试、学习或者分析...
与其他编程语言相比,Java的反编译更为复杂,因为Java的字节码是经过优化的,不直接映射到源代码行。jd-gui通过解析字节码并尝试重构源代码结构,实现了高质量的反编译效果。 最后,“反编译工具”这一标签表明jd-...
JD-GUI是一款直观的图形用户界面工具,专门用于反编译Java的Class文件,从而帮助开发者查看和理解字节码背后的源代码。它不仅适用于单个Class文件,还可以处理包含多个Class文件的.jar档案。在Java开发中,JD-GUI...
Java反编译是Java开发中一个重要的辅助工具,主要用于查看和理解Java字节码,将已编译的.class文件或.jar文件转换回源代码形式。这在进行逆向工程、学习开源项目、修复bug或者理解未知代码的工作流程时非常有用。...
1. **Java字节码与反编译** Java程序在运行前会被编译成字节码,这是一种平台无关的中间语言,由JVM(Java虚拟机)执行。反编译是将这种字节码转换为人类可读的Java源代码,这个过程可以揭示程序的逻辑结构,尽管...
jad 是应用最广泛的java 反编译工具;其本身是命令行工具;其他很多用具是在jad内核的基础上加了一个图形界面;比如我上传的资源、Cavaj Java Decompiler 以下假设jad.exe在c:\java目录下 一、基本用法 ...
java反编译工具,java反编译工具,java反编译工具 一款很好的java反编译工具 一款很好的java反编译工具一款很好的java反编译工具
除此之外,FernFlower是另一个开源的Java反编译器,它提供了一种更为细致的反编译策略,以尽可能地还原源代码结构。你可以通过下载源代码,然后在命令行调用相应的编译脚本来使用FernFlower。 对于更高级的场景,...
JD-GUI是一款流行的Java反编译工具,尤其适用于Mac用户。在本文中,我们将深入探讨JD-GUI在Mac平台上的使用,以及它如何帮助开发者处理Java字节码。 JD-GUI是一款图形用户界面工具,它允许开发者直接查看和分析单个...
在Mac操作系统上,一个常见的Java反编译工具是JD-GUI。JD-GUI是一款图形化界面的工具,它能够直观地显示类文件的源代码,而无需进行复杂的命令行操作。 标题中的"mac版本java反编译工具jd-gui"指的是专门为Mac OS...