导航:首页 > 源码编译 > java反编译命令

java反编译命令

发布时间:2022-01-30 20:42:36

1. java编译工具哪个好

java反编译工具有如下两种:

1.jd-gui.exe反编译最方便,界面如下:

2.XJad.exe反编译最精确

2. 求教JDK中的反编译命令

用习惯了着名的反编译工具jad的话,如果有的时候单给出class文件,要快速看这个class文件

的JDK版本号等,其实不用工具,也可以用JDK自带的javap命令进行反编译输出,下面小结

其用法:


1,javap -verbose 类名

得到的信息如下:


Compiled from "Test.java"

public class Test extends java.lang.Object

SourceFile: "Test.java"

minor version: 0

major version: 50

Constant pool:

......


可以看出jdk的版本,这个用在判断某些CLASS的版本是否兼容的时候很有用.


2 最常见的不带参数的情况:javap 类名


比如某个类:

Java代码

packagetest;

publicclassTest{

intnumber=5;

publicvoidsayHello(){
System.out.println("Hello");
}
}


则:

C: empjavaptest>javap Test

Compiled from "Test.java"

public class test.Test extends java.lang.Object{

int number;

public test.Test();

public void sayHello();

}


带参数-c:

则可以看到字节码了:


Java代码

C:	empjavaptest>javap-cTest
Compiledfrom"Test.java"
publicclasstest.Testextendsjava.lang.Object{
intnumber;

publictest.Test();
Code:
0:aload_0
1:invokespecial#1;//Methodjava/lang/Object."<init>":()V
4:aload_0
5:iconst_5
6:putfield#2;//Fieldnumber:I
9:return

publicvoidsayHello();
Code:
0:getstatic#3;//Fieldjava/lang/System.out:Ljava/io/PrintStream;
3:ldc#4;//StringHello
5:invokevirtual#5;//Methodjava/io/PrintStream.println:(Ljava/lang/String;)V
8:return

}


带参数-l: 将显示行号和局部变量表


-public 只显示 public 类及成员。

-protected 只显示 protected 和 public 类及成员。

-package 只显示包、protected 和 public 类及成员。这是缺省设置。

-private 显示所有类和成员。

3. Java反编译工具的用法

反编译得出的代码,是JAVA文件在生成CLASS文件时,做过优化的代码。
所以跟你的原文件不一样(比如:注释全没有,中文全变成Unicode码,字符串连接全部用StringBuffer类来代替,自动增加else语句等等)。
所以,你要是想修改反编译出来的代码,可以:
1、将反编译出的代码复制到一个新建的类文件里
2、运行这个文件
3、根据错误提示,进行修改
以上是,我用过的方法。

4. 最好的java反编译工具是哪个

  1. jd-gui好

  2. 计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。JD分为JD-GUI、JD-Eclipse两种运行方式,JD-GUI是以单独的程序的方式运行,JD-Eclipse则是以一个Eclipse插件的方式运行。

5. java反编译

如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在INTERNET的数据库、多媒体、CGI、及动态网页的制作方面。1999年在美国对JAVA程序员的需求量首次超过C++!

作者因最近分析一些JAVA程序,对JAVA的反编译进行了一番了解,下面将我所了解的情况作以下介绍,希望对JAVA爱好者有所帮助。

JAVA是采用一种称做“字节编码”的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型。无论哪种结构,一旦用JAVAC 命令编译后,均变成后缀为CLASS的同名可执行文件。这种文件是不可阅读的代码。

经查阅了SUN公司的JDK(JDK1.1.3)文档资料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于\JDK\BIN\ 下面,经按说明使用后,感到失望,原来这个“反编译”仅可反编译出JAVA程序的数据区(定义)、若干方法和类的引用等。

这里我用了一个简单例子来说明问题。

JAVA的源程序hello_java.java如下:

import java.applet.*;
import java.awt.*;
public class hello_java extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello Java!\n",20,20);
}
}

经用反编译命令:javap -c -package -public -private hello_java hello.java

得到的反编译结果(hello.java)如下:(有关javap命令的选择参数请见其使用说明,这里-c表示选择了反编译)

Compiled from hello_java.java
public synchronized class hello_java extends java.applet.Applet
/* ACC_SUPER bit set */
{
public void paint(java.awt.Graphics);
public hello_java();
Method void paint(java.awt.Graphics)
0 aload_1
1 ldc #1
3 bipush 20
5 bipush 20
7 invokevirtual #6
10 return
Method hello_java()
0 aload_0
1 invokespecial #5 ()V>
4 return
}

6. java反编译器怎么用

目前最好的反编译工具,是小颖JAVA源代码反编译超级引挚,Google一下就有下的,很好用

7. Java的反编译命令是什么

用jd gui可以直接反编译class为java代码。
java中的“反编译”命令是用来查看class文件的。
在jdk/bin的目录下有个叫做javap的命令行工具。主要是在分析Class文件的时候比较有用。

8. 教我怎样 java反编译可以吗

反编译的工具有好多, 在众多的JAVA反编译工具中,有几种非常着名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家。
jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。可惜用起来不太方便。还好

找到eclipse下的插件,叫jadclipse,安装好之后,只要双击.class文件,就能直接看源文件,包括jar

包中的class文件,也可以直接反编译。

1.下载jad1.5.8e

下载后解压。解压缩后将jad.exe拷贝到JRE的bin目录下,如d:/Java/jre1.5/bin

2.下载net.sf.jadclipse_3.2.4.jar

3.安装插件,有如下两种方法

A.将net.sf.jadclipse_3.2.4.jar复制到D:/leaf/eclipse/plugins目录下。

B.在d:/leaf下建立ecliplsePlungin/jadclipse/eclipse/plugins目录,将net.sf.jadclipse_3.2.4.jar放到该目录。在d:/leaf/eclipse/links下建jadclipse.link,内容为path=d/://leaf//ecliplsePlungin//jadclipse

3.启动Eclipse后,在Windows(窗口)-->Perference(首选项)-->Java下面应该会多出一个JadClipse目录,相关的设置可以在此修改配置jadclipse:设置path to decompiler为jad.exe的全路径,如:d:/Java/jre1.5/bin/jad.exe,在Directory for temporary files中指定临时文件的路径,如:C:/Java/temp

4、在Eclipse的Windows-->Perference-->General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”

5、安装完成,双击class文件,Eclipse将自动反编译了。

6、把*.java 和*.class文件放在同一文件夹下,在反编译时它回自动去寻找*.java的文件。

反编译工具jad简单用法

以下假设jad.exe在c:/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

9. java反编译指令有哪些

反编译可以用java decompiler,有exe版和eclipse插件版,或者如果ide是idea的话,自带反编译功能

10. java的反编译怎么做的

你做了很多了吧!很好,继续学吧!
class.forName():加载的是指定的一个类
.class文件是由JAVA虚拟机加载,解释执行的
阁下 可能把 方向搞错了。

JAVA的反射机制很强大,基本上所有的涉及到配置文件的,都有反射的影子。尤其是JAVA编程中的框架SSH,ibates等等。

这些框架因为使用了反射机制,在普通程序员眼里,就只有类和配置。这样系统很容易扩展和维护。

反射机制 也不要研究得太深,对于中国这个JAVA软件行业,还是应用维多,你应该不会想自己开发一个框架吧。

阅读全文

与java反编译命令相关的资料

热点内容
工作三年的大专程序员 浏览:728
java毕业设计文献 浏览:143
筹码集中度指标源码 浏览:482
listsortjava 浏览:186
plc闪光电路编程实例 浏览:299
socket编程试题 浏览:206
华为的服务器怎么设置从光驱启动 浏览:871
程序员真的累吗 浏览:328
学信网app为什么刷脸不了 浏览:873
天蝎vs程序员 浏览:996
单片机下载口叫什么 浏览:190
程序员的道 浏览:926
云服务器不实名违法吗 浏览:558
怎样查看文件夹图片是否重复 浏览:995
文件怎么导成pdf文件 浏览:808
打开sql表的命令 浏览:103
安卓手机如何面部支付 浏览:38
天元数学app为什么登录不上去 浏览:825
明日之后为什么有些服务器是四个字 浏览:104
安卓系统l1是什么意思 浏览:26