前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

利用bat反编译jar包生成源码jar包 - seavers - ITeye技术网站 首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼ 招聘 搜索 您还未登录 ! 登录 注册 seavers 博客 微博 相册 收藏 留言 关于我 seavers 利用bat反编译jar包生成源码jar包 博客分类: java java反编译 之前曾发表在 csdn(blog.csdn.net/seavers) 上, 不过, csdn的代码乱掉了, 今天重新整理了一下 反编译所使用的工具是jad.exe,笔者的测试版本是1.5.8e,压缩与解压缩使用的是WinRAR jad.exe 可反编译一个class文件为java文件,笔者的BAT可通过此工具将一个jar包反编译成一个完整的源码jar包,同时生成的目录也可以在eclipse中使用 jad.exe 官方网站 : http://www.kpdus.com/jad.html (已失效, 从这里或者附件下载) BAT脚本见后 安装方法如下: 复制粘贴后面的文本为一个BAT,然后与jad.exe放在同一个目录即可(WinRAR需正确安装) 使用方法如下: (有3种使用方法, 使用其中任意一种均可,结果是相同的) 1. 双击BAT,提示输入需反编译的jar包,请输入完整的jar路径 2. 直接将 jar 包拖放在bat上 3.右键点击jar包,选择打开方式,然后选择使用该BAT来执行 运行后的结果如下: 在jar包的同一目录下, 将会生成一个目录,一个jar,目录下有两个子目录,一个目录存放解压缩后的所有class,一个目录存放反编译后的java文件,jar包是用源码压缩生成的 几点说明: 1. 工具中使用的WinRAR是自动识别安装路径的,请正确安装WinRAR 2. 工具使用的jad.exe,须与BAT放在同一目录,或者放在PATH可搜索到的位置 3. jar包中非class文件,也会完整拷贝在源码目录下,方便生成源码工程 4. 生成的目录名与原 jar 包同名, 生成的源码 jar 包的文件名是在原名称中加入-src而生成, 如原 jar 包为 jdbc.jar, 则生成的目录名为 jdbc, 而生成的源码jar 包名则为 jdbc-src.jar 5. eclipse使用方法1, 将BAT生成的目录放在workspace中,然后创建同名工程 6. eclipse使用方法2,在 eclipse 中创建同名工程,使用src为源文件目录,bin为class文件目录,然后将BAT生成的目录拷贝在eclipse的workspace中 该BAT为 blog.csdn.net/seavers 原创, BAT源码仅供个人学习,使用,研究,未经本人同意,不可用于商业用途 --------------------------------------------------------------------------- 我通常的使用方式是: 将 bat 与 jad.exe 解压在windows根目录, .jar右键用bat打开发后, 第二次及以后使用就方便多了 BAT更新了一下 BAT源码如下: (请直接拷贝在BAT文件中) ::功能: 利用bat反编译jar包生成源码jar包 ::作者: seavers ::博客: http://seavers.iteye.com/ ::版本: 1.7 ::打开/关闭命令行显示 REM @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 dj.rar (160.9 KB) 下载次数: 81 分享到: inline元素上支持的css属性 | sync.js 2012-02-21 22:27 浏览 1626 评论(1) 分类:编程语言 相关推荐 评论 1 楼 大蒜头 2013-09-29 谢谢你的东西,谢谢! 发表评论 您还没有登录,请您登录后再发表评论 seavers 浏览: 13111 次 来自: ... 最近访客 更多访客>> dylinshi126 jyeako yatming jjxliu306 文章分类 全部博客 (67) ubuntu (17) java (8) maven (5) git (2) javascript (10) css (3) cubieboard (3) 思考 (9) android (2) nginx (1) php (1) 社区版块 我的资讯 (0) 我的论坛 (0) 我的问答 (1) 存档分类 2013-12 (1) 2013-11 (5) 2013-10 (1) 更多存档... 评论排行榜 批量转换GBK到UTF-8 最新评论 大蒜头: 谢谢你的东西,谢谢! 利用bat反编译jar包生成源码jar包 seavers: cloverprince 写道find . -name .sv ... 批量转换GBK到UTF-8 cloverprince: find . -name .svn -prune -o -na ... 批量转换GBK到UTF-8 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。若作者同意转载,必须以超链接形式标明文章原始出处和作者。 © 2003-2014 ITeye.com. All rights reserved. [ 京ICP证110151号 京公网安备110105010620 ]