jad

eclipse查看class文件

岁酱吖の 提交于 2020-03-02 02:32:19
在使用第三方jar包的时候没有源码的时候,报错是一件头疼的事情,没有源码不知道问题出在哪里。 现在可以通过jad集成到eclipse中,用来debug 的时候查看源码。 一:下载插件(转) JAD : http://www.kpdus.com/jad.html#download (选择与操作系统对应的版本)网页貌似打不开了,这里给大家上传了一份,免费供大家下载使用 http://download.csdn.net/detail/sushengmiyan/6885693 JadClipse: http://sourceforge.net/project/showfiles.php?group_id=40205 (选择Eclipse支持的版本) 在上面的下载中也保护了JADeclipse插件,就是net.sf.jadclipse_3.3.0.jar 二:安装 1,将下载到的JAD反编译工具解压,将得到的jad.exe放置到系统某一目录下,如C:/Java/jre1.5.0_07/bin;(位置可以随便放,以后配置要用,推荐放到java目录下) 2,将下载到的JadClipse压缩包net.sf.jadclipse_3.3.0.jar(对应你刚才下载的版本)放置到Eclipse目录下plugins内(该目录是专门放置插件的,你也可以自己建立个文件夹来放置插件,但要记住路径,后面需要配置)

如何从Java中的其他类读取私有字段的值?

爱⌒轻易说出口 提交于 2020-02-27 05:02:30
我在第三方 JAR 设计的课程设计不佳,需要访问其 私有 字段之一。 例如,为什么我需要选择私有字段? class IWasDesignedPoorly { private Hashtable stuffIWant; } IWasDesignedPoorly obj = ...; 我如何使用反射来获取 stuffIWant 的价值? #1楼 为了访问私有字段,您需要从类的 声明 字段中获取它们,然后使其可访问: Field f = obj.getClass().getDeclaredField("stuffIWant"); //NoSuchFieldException f.setAccessible(true); Hashtable iWantThis = (Hashtable) f.get(obj); //IllegalAccessException 编辑 :正如 aperkins 所评论的 那样 ,访问字段,将其设置为可访问并获取值都将抛出 Exception ,尽管上面仅提到了您需要注意的所有 检查 异常。 如果您请求的字段名称与声明的字段不对应,则将引发 NoSuchFieldException 。 obj.getClass().getDeclaredField("misspelled"); //will throw NoSuchFieldException

什么原因导致NoClassDefFoundError和ClassNotFoundException之间有什么区别?

北城以北 提交于 2020-02-26 09:54:35
NoClassDefFoundError 和 ClassNotFoundException 什么区别? 是什么导致它们被抛出? 如何解决? 在修改现有代码以包含新的jar文件时,我经常遇到这些throwables。 我在客户端和服务器端都通过Webstart分发了一个Java应用程序。 我遇到的可能原因: 客户端代码未包含在 build.xml 中的软件包 我们正在使用的新jar缺少运行时类路径 版本与先前的jar冲突 今天,当我遇到这些问题时,我采取了走错一步的方法来使事情顺利进行。 我需要更多的清晰度和理解。 #1楼 NoClassDefFoundError 基本上是一个链接错误。 当您尝试实例化一个对象时会发生这种情况(静态地使用“ new”),而在编译过程中则找不到该对象。 ClassNotFoundException 更通用,是当您尝试使用不存在的类时的运行时异常。 例如,您在函数中具有接受接口的参数,并且有人传入实现该接口的类,但您无权访问该类。 它还介绍了动态类加载的情况,例如使用 loadClass() 或 Class.forName() 。 #2楼 与Java API规范的区别如下。 对于 ClassNotFoundException : 当应用程序尝试使用其字符串名称通过其字符串名称加载类时抛出: 类 Class 的 forName 方法。 类

arthas常用命令

笑着哭i 提交于 2020-02-26 07:11:30
arthas三个常用命令 1、watch Watch 类全路径 方法名 “{params,returnObj}” -x 5 2、trace Trace 类全路径 方法名 3、jad Jad 类全路径 方法名 来源: oschina 链接: https://my.oschina.net/u/3745555/blog/3157748

反编译工具jad的使用

微笑、不失礼 提交于 2020-02-25 20:43:13
from:http://www.javaresearch.org/article/55024.htm 这是jad的readme文件jad -sjava example1.class jad的主页是:http://www.geocities.com/SiliconValley/Bridge/8617/jad.html Copyright 2000 Pavel Kouznetsov (kpdus@yahoo.com). 1. 请先读jad主页的否认声明文件 2. 安装 解压缩jad.zip包,并把它放在你硬盘的某个目录下。将会创建两个文件 jad.exe和readme.txt文件,不需要其他的安装文件 3. 怎样去用jad 如果要简单的反编译一个.class文件的话,用以下命令 jad example1.class这个命 令在当前文件夹下创建了一个example1.jad文件如果jad文件已经存在的话,会提示你是否要覆盖这个jad文件 -o 允许你直接覆盖掉以前存在的jad文件 -s 允许你改变输出文件的扩展类型,如下所示将输出文件类型变成 *.java jad -sjava example1.class 这个命令创建了一个example1.java文件 要注意的是连用-o,-s命令,可能会将你自己的源文件也覆盖掉的 jad用class自己的名字作为一个输出文件的名字,比如如果

Java反编译工具jad

我们两清 提交于 2020-02-25 20:42:14
Java下的一个简单易用的反编译工具 jad , 可以很方便的将.class反编译为.java. 点击下载 一、基本用法 Usage:jad [option(s)] 直接输入类文件名,且支持通配符,如下所示。 c:\java\>jad example1.class c:\java\>jad *.class 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。 二、Option -o 不提示,覆盖源文件 三、Option -s c:\java\>jad -sjava example1.class 反编译结果以.java为扩展名。 四、Option -p 将反编译结果输出到屏幕 c:\java\>jad -p example1.class 将反编译结果重定向到文件 c:\java\>jad -p example1.class>example1.java 五、Option -d 指定反编译的输出文件目录 c:\java\>jad -o -dtest -sjava *.class 来源: https://www.cnblogs.com/Truly/archive/2005/08/14/214684.html

java反编译工具jad

主宰稳场 提交于 2020-02-25 20:41:33
(转载)java反编译工具jad_程序员java/.jsp/.asp--拼搏2008 http://www.kpdus.com/jad.html 官方最新版本,支持jdk1.6 Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java. 点击下载 一、基本用法 Usage:jad [option(s)] 直接输入类文件名,且支持通配符,如下所示。 c:\Java\>jad example1.class c:\Java\>jad *.class 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.Java即得源文件。 二、Option -o 不提示,覆盖源文件 三、Option -s c:\Java\>jad -sJava example1.class 反编译结果以.Java为扩展名。 四、Option -p 将反编译结果输出到屏幕 c:\Java\>jad -p example1.class 将反编译结果重定向到文件 c:\Java\>jad -p example1.class>example1.Java 五、Option -d 指定反编译的输出文件目录 c:\Java\>jad -o -dtest -sJava *.class 该文章转载自网络大本营:http://www

如何“反编译” Java类文件? [关闭]

爱⌒轻易说出口 提交于 2020-01-25 05:22:12
我可以使用什么程序来反编译类文件? 我实际上会得到Java代码,还是仅仅是JVM汇编代码? 关于该站点上的Java性能问题,我经常看到已经“反编译” Java类文件以查看编译器如何优化某些东西的人们的回答。 #1楼 到目前为止,列出的所有JAD链接似乎都已损坏,因此我找到了此站点。 效果很好(至少适用于Linux)! 在Ubuntu 11.10上,无论出于何种原因,我都必须下载静态版本。 http://www.varaneckas.com/jad #2楼 如果要查看Java编译器如何执行某些操作,则不需要反编译,而需要反汇编。 反编译涉及将字节码转换为Java源代码,这意味着丢失了许多低级信息,并且如果您想知道编译器优化,那么这可能就是您感兴趣的信息。 无论如何,我碰巧写了一个 开源Java反汇编程序 。 与Javap不同,这甚至可以在高度病理的类上使用,因此您也可以查看混淆工具对类的作用。 它也可以反编译,尽管我不建议这样做。 #3楼 煤烟 是更新的Java代码的一种选择。 至少它的优点是最近仍在维护... 而且, Java Decompiler 是具有独立GUI和Eclipse集成的反编译器。 最后,虽然没有像其他选项那样 精巧 ,但是没有提及 Jdec 。 #4楼 Procyon 包括反编译器。 是FOSS。 #5楼 JAD对我不起作用(Ubuntu 11.10问题)

Arthas实践

久未见 提交于 2020-01-06 15:05:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 此处不再赘述Arthas的安装,直接上使用技巧 官网地址: https://alibaba.github.io/arthas/ 1. 查看线程信息 thread 查看当前线程信息,查看线程的堆栈 参数说明 参数名称 参数说明 id 线程id [n:] 指定最忙的前N个线程并打印堆栈 [b] 找出当前阻塞其他线程的线程 [i <value> ] 指定cpu占比统计的采样间隔,单位为毫秒 1) 查看当前所有线程 thread 输出 2) 查看当前最忙的前n个线程并打印堆栈 thread -n 2 输出 $ thread -n 2 "http-nio-8080-exec-1" Id=147 cpuUsage=18% TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@48a1d8fc at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@48a1d8fc at java.util.concurrent

Recompile decompiled Java (JD / JAD) source that contains goto instructions

笑着哭i 提交于 2019-12-30 08:28:22
问题 (Related question: Java compilers or JVM languages that support goto?) I have decompiled a jar (Legally, for debugging purposes) and want to recompile it. I've used both JAD and JD and both don't compile due to goto instructions E.g. goto _L1 ... L1: return true; Is there an easy way (or any way) to recompile it? (Except to manually refactor and remove the goto 's) 回答1: No, there isn't. In your case, neither JD nor JAD were able to decompile the class files correctly. The 'goto' statements