当前位置:首页 » 编程软件 » java反编译工具有哪些

java反编译工具有哪些

发布时间: 2023-02-14 12:07:26

❶ JAD中文是什么

JAD(应用程序开发联系会议) 召开应用程序开发联系会议 应用程序开发联系( J A D)会议是范围广的、简便的专题讨论会( w o r k s h o p),也是分析人员与客户代表之间一种很好的合作办法,并能由此拟出需求文档的底稿。 出自《软件需求》第三章-》需求获取 java 应用程序描述符 (JAD) JAD 文件包含 MIDlet 套件的标题信息,例如开发应用程序的公司、应用程序名称和大小。在将应用程序下载到设备上时,将先下载和读取描述符,然后再下载和读取包含 MIDP 应用程序的 JAR 文件。在装入 MIDlet 套件的完整 JAR 文件之前,移动设备上的应用程序管理软件可使用 JAD 文件验证 MIDlet 是否适用于该设备。JAD 还向 MIDlet 提供特定于配置的属性(参数),而无需修改 JAR 文件。这样设备便可以确认是否具有足够的空间用于存放应用程序,以及是否应下载完整的应用程序。 Java 文件的扩展名为 .jad。 JAD是软件配置信息文件,JAR才是真正的程序,你可以把两个文件放在一起安装JAD,也可以直接安装JAR文件。 JAD 文件为纯文本格式,可用记事本打开。一个 JAD 文件至少需要包含包含如下属性: MIDlet-Name。向用户标识 MIDlet 的 MIDlet 套件名称。 MIDlet-Version。MIDlet 套件的版本号。应用程序管理软件使用该版本号执行安装操作和升级,以及与用户进行通信。 MIDlet-Vendor。 提供 MIDlet 套件的组织。 根据项目配置所支持的 MIDP 版本,还可以使用其他属性: MIDlet-JAR-URL。此 MIDlet 套件的 JAR 文件的位置和名称。 MIDlet-JAR-Size。通过此 MIDlet 套件生成的 JAR 文件的大小。每次生成 JAR 文件后,都会更新此只读属性。 MicroEdition-Profile。所需的 Java ME 配置文件,它使用与系统属性 microedition.profiles 相同的格式和值(例如 MIDP-1.0)。 MicroEdition-Configuration。 所需的 Java ME 配置,它使用与系统属性 microedition.configuration 相同的格式和值(例如 CLDC-1.0)。 MIDlet-Description。MIDlet 套件的描述。 MIDlet-Icon。JAR 文件内的 PNG 文件名,用于表示 MIDlet 套件。应用程序管理软件显示了标识此套件的图标。 MIDlet-Info-URL。一个 URL,提供进一步描述 MIDlet 套件的信息。 MIDlet-Data-Size。MIDlet 所需的持久性数据的最少字节数。设备可以根据其自身的策略提供额外的存储。 此外,JAD还是一个简单易用的反编译工具,可以将二进制字节码文件转换成java源文件。 在众多的JAVA反编译工具中,有几种非常着名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家等等。 JAD本身是一个命令行工具,没有图形界面,上述的这些工具大多是在JAD内核的基础之上加了一个图形界面而已。这么多种产品的共同选择,足可证明JAD在JAVA反编译领域中的尊贵地位。

❷ java反编译工具哪个好用

jd-gui、DJ Java Dcompiler、Xjad
其中前2个我用过,jd-gui 算是轻量级,但有时候反编译的效果不如 DJ,有些文件可能还原的不完整;DJ的缺点是只能一个文件一个文件的打开,而且体验上比jd-gui稍差。

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

jd-gui 是Java反编译中比较好用的一个工具,用法如下:

  1. 下载jd-gui

  2. 双击打开jd-gui.exe

  3. 单击左上角的File--->Open File

  4. 找到需要反编译的.class文件 打开即可

❹ Java反编译工具有什么作用

就是把经过java文件编译后的可执行的class文件再反编译为java文件,因为经过编译的class文件是不可阅读的!但是由于java文件一般都不是单独运行的,会有类之间的相互调用,所以反编译工具反编译后只能大体上还原原来java文件,而不能完全还原,特别是一些变量的取值,定义等..

❺ 求java开发反编译破解工具(DJ Java Decompiler)V3.12.12.99网盘资源

链接:

提取码:6xkq

软件名称:java开发反编译破解工具(DJJavaDecompiler)V3.12.12.99

语言:英文软件

大小:7.81MB

类别:系统工具

介绍:这是一款实用的java开发反编译破解工具,运行DJ.exe直接用,是破解的,已经绿化破解DJJavaDecompiler。

❻ 求各种好用的反编译工具!!

如PB的,最常用的是 PB反编译专家 SHUDEPB
.net,一般是Reflector
dephi,一般是dede
JAVA,比较出名的有小颖的反编译专家

XJad(Java源代码反编译工具) V2.2

XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2。
XJad可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*.jar文件。
XJad带有多页面文本编辑器,反编译完成后可以直接编辑查看,编辑器支持java语法的高亮显示功能。
XJad是一个纯绿色软件,为使用方便,可以在选项中设置集成到资源管理器中,这样在*.class、*.java、*.jar文件和目录上随时点击右键都可直接进行操作。
XJad还带有导出当前编辑器中的代码为HTML文件的功能,HTML文件保持代码高亮显示的样式风格。
使用说明
===========
1、反编译class文件:打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,保存至当前文件夹,并在编辑器中打开查看;
2、反编译文件夹:在软件中选择反编译文件夹或右键点击文件夹选择反编译,XJad将该文件夹下所有*.class文件进行反编译,并保存至该文件夹下,依据包路径信息生成文件夹路径,如com.spring.framework.*,将建立com\\spring\\framework的文件夹结构;
3、反编译jar文件:打开一个*.jar文件,XJad将该Jar文件中的所有*.class文件解压缩到临时目录并进行反编译,并将源文件带包路径信息保存至当前文件夹下名称为“~” + *.jar 的文件夹中;

flash反编译工具 闪客精灵

❼ 反编译工具 java jad怎么使用方法

下好以后解压就可以用了,软件就只有一个exe文件和一个帮助文件,为了方便使用,我直接将exe文件放到JDK的bin目录里了:)
下面先来看看从网上搜集来的介绍:在众多的JAVA反编译工具中,有几种非常着名的工具使用了相同的核心引擎——JAD,其中主要包括:Front
End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java
Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家。
JAD本身是一个命令行工具,没有图形界面,上述的这些工具大多是在JAD内核的基础之上加了一个图形界面而已。这么多种产品的共同选择,足可证明JAD
在JAVA反编译领域中的尊贵地位。 JAD是使用Microsoft Visual
C++开发的,运行速度非常快,可以处理很复杂的JAVA编译文件。众多的参数使JAD可以灵活应付多种加密手段,令反编译的代码更加优化和易读。由于
JAD参数太多,没必要一一解释,其中有几个最常用的如下:

-d <dir> - 用于指定输出文件的目录

-s <ext> - 输出文件扩展名(默认为: .jad),通常都会把输出文件扩展名直接指定为.java,以方便修改的重新编译。

-8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示。
最常用的反编译指令如下所示:

Jad -d c:\test -s .java -8 HelloWorld.class

这将当前目录下的HelloWorld.class反编译为HelloWorld.java并保存在c:\test目录里,其中的提示输出为中文,
而不是Unicode代码。
附件:对下载后的说明文档的简单翻译,希望对你有所帮助(mathsfan修改于2006.10.29,翻译的不好请见谅)0、1略去2、怎样使用JAD
反编译一个简单的java class文件'example1.class'用如下命令: jad example1.class
这个命令将在当前目录下创建一个'example1.jad'文件,假如当前目录下存在这个文件,则JAD会提示你覆盖它与否。选项
-o 允许覆盖时没有任何提示。选项 -s <ext>允许改变输出文件的后缀名: jad -sjava example1.class
这个命令将要创建'example1.java'文件。在一起使用-o 和
-sjava选项时请小心,因为JAD会附带的重写你的源文件。JAD使用JAVA
class的名字作为输出文件的名字。例如,假如class文件'example1.class'包含JAVA class
'test1'那么JAD将会创建文件'test1.jad'而不是'example1.jad'。假如你想具体指明你的输出文件的名字使用输出重命名:

jad -p example1.class > myexm1.java

选项 –d允许你具体指明另外的输出文件目录,不管这个目录是新建的、默认的或者当前目录。例如:

jad -o -dtest -sjava *.class

(或者 jad -o -d test -s java *.class, 这个有同样的效果)

这个命令将在当前目录下反编译所有的.class文件并在'test'文件夹下建立所有扩展名为.java的输出文件。

假如你想反编译整个目录树下的JAVA classes,使用如下命令:

jad -o -r -sjava -dsrc tree/**/*.class

这个命令将反编译当前目录树里所有的.class文件并且在当前目录下建立src文件夹后根据包的名字来输出文件。例如,假如有一个文件
'tree/a/b/c.class'在包'a.b'下包含了class 'c',那么输出文件的名字为'src/a/b/c.java'。

在先前的命令上将通配符那里注释掉。则它是用JAD来处理而不是command壳,所以在UNIX上的最后一次参数将会被单独引用。

jad -o -r -sjava -dsrc 'tree/**/*.class'

你想检查编译后的文件的正确性或者出于好奇的情况下,这里有一个选项 –a 将会告诉JAD给输出的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

❾ java语法基础,具体内容

Java基础——Java开发前奏

Java的特点

Java最主要的特点是:一次编译,到处运行(WriteOnce,RunAnywhere.)。

原理:Java源程序经编译后生成.class字节码文件,.class文件由Java虚拟机(JVM)解释执行。不同的操作系统下,只要有相应的Java字节码解释程序,.class文件就能够运行,这是Java跨平台性的根本。c和java编程与执行的过程如下图所示:

Java的内涵

1、是一种编程语言

2、是一套开发工具

3、是一个运行环境

Java应用平台

1、J2EE()——用于企业级应用程序的开发

2、J2SE(Java2PlatformStandardEdition)——用于普通标准应用程序的开发

3、J2ME(Java2PlatformMicroEdition)——用于小型消费类电子产品或嵌入式系统的开发

J2SE包括4部分——JVM、JRE、JDK与Java语言。

环境变量的设置

环境变量——在操作系统中定义的变量,可供操作系统上所有的应用程序使用。

1、查看环境变量

a.命令提示行:环境变量的命令——set(环境变量名)

b.窗口方式:我的电脑->属性->高级->环境变量

2、设置path环境变量

path环境变量的作用:设置操作系统寻找和执行应用程序的路径。

JAVA_HOME:C:ProgramFilesJavajdk1.6.0_14

path:%JAVA_HOME%in;%JAVA_HOME%jrein

3、设置classpath环境变量

classpath环境变量的作用:让Java执行环境找到指定的java程序(.class文件)。

classpath:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar

注意:a.%JAVA_HOME%前面有“.;”,“.”表示当前目录,两个路径之间用“;”隔开。

b.设置classpath的路径中不能有空格,也不能有中文字符。

JVM的运行过程

Java反编译工具——JAD、FrontEnd

Java开发工具

1、记事本

注意保存时文件名应为*.java。

2、UltraEdit、EditPlus

使用EditPlus编辑和编译Java程序,需要进行相应配置。选择“工具”->“参数选择”->“工具”->“用户工具”->“添加工具”->“应用程序”。首先设置“javac”的参数,具体如下图,其中“命令”为javac.exe文件的地址。

然后设置“java”的参数,如下图所示,其中“命令”为java.exe文件的路径。

设置好后默认“javac”工具的快捷键为Ctrl+1,“java”工具的快捷键为Ctrl+2。当编辑好Java源程序后,使用Ctrl+1即可对其进行编译,然后按Ctrl+2运行程序。如下图所示:

3、集成开发环境——Eclipse、MyEclipse、JBuilder等。

关于Eclipse和MyEclipse,刚用的时候感觉二者差不多,查了资料才知道Eclipse是基础,如同操作系统;而MyEclipse是在Eclipse上面运行的程序,不过进行了增强并提供了新功能。

以前用过Microsoft的VisualStudio2005,个人感觉VS2005是一个功能非常强大的集成开发环境,不过.NET和Java毕竟不是一家人,学Java还是要用Eclipse的。

JDK中的常用包

1、java.lang——包含一些Java语言的核心类,如String、Math、Thread、System、Integer类等。

2、java.awt——包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面(GUI)。

3、java.applet——包含applet运行所需的一些类。

4、java.net——包含执行与网络相关操作的类。

5、java.io——包含能提供多种输入/输出功能的类。

6、java.util——包含一些实用工具类。

Java的命名习惯

1、包名中的字母一律小写。如:xxxyyyzzz。

2、类名、接口名应使用名词,每个单词的首字母大写。如:XxxYyyZzz。

3、方法名,第一个单词小写,后面每个单词的首字母大写。如:xxxYyyZzz。

4、变量名,第一个单词小写,后面每个单词的首字母大写。

5、常量名中的每个字母一律大写。如:XXXYYYZZZ。

Java基础——Java语法基础(1)

Java代码基本格式

Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符。格式如下:

修饰符class类名

{

程序代码

}

注:

1、Java是严格区分大小写的。

2、Java程序中一句连续的字符串不能分开在两行中写。

Java程序的注释

Java里的注释有三种类型:

1、单行注释

在注释内容前面加“//”,格式为:

代码;//注释内容

2、多行注释

以斜杠加星号开头,以星号加斜杠结尾。

3、文档注释

以斜杠加两个星号开头,以一个星号加斜杠结束。

用这种方法注释的内容会被解释成程序的正式文档,并能包含进诸如javadoc之类的工具程序生成的文档里,用以说明该程序的层次结构及其方法。

补充:

1、多行注释中可以嵌套“//”注释,但不能嵌套多行注释符号。

2、程序注释一般占程序代码总量的20%-50%,“可读性第一,效率第二”。

Java中的标识符

Java中的包、类、方法、参数、变量的名字,可以由任意顺序的大小写字母、数字、下划线(_)、美元符号($)组成,但不能以数字开头,不能是Java中的保留关键字。

Java的关键字

1、用于类和接口的声明:class,extends,implements,interface

2、包引入和包声明:import,package

3、数据类型:byte,boolean,char,double,int,long,float,short

4、某些数据类型的可选值:flase,ture,null

5、流程控制:break,case,continue,default,do,else,for,if,return,switch,while

6、异常处理:catch,finally,throw,throws,try

7、修饰符:abstract,final,native,private,protected,public,static,synchronilzed,transient,volatitle

8、操作符:instanceof

9、创建对象:new

10、引用:this,supper

11、方法返回类型:void

12、保留字:const,goto

Java中的常量

1、整形常量

十进制

十六进制——以0x或0X开头

八进制——以0开头

长整形——以L(l)结尾

2、浮点数常量

单精度浮点数——后面加f(F)

双精度浮点数——后面加d(D)

注:

a.小数常量的默认类型是double型,所以float类型常量后一定要加f(F)。

b.浮点数常量可以用指数形式表示,如5.022e+23f

3、布尔常量

true或false

4、字符常量

由英文字母、数字、转义序列、特殊字符等的字符所表示,如'a'、' '等。

Java中的字符占两个字节,是用Unicode码表示的,也可以使用'u'加Unicode码值来表示对应字符,如'u0027'。

常用的转义字符有:

——表示接受键盘输入,相当于按了一下回车键

——表示换行

——表示制表符,相当于Tab键

——表示退格键,相当于BackSpace键

'——表示单引号

”——表示双引号

\——表示反斜杠“”

5、字符串常量

字符串常量用双引号括起来。

6、null常量

null常量表示对象的引用为空。

Java的变量类型

基本数据类型之间的转换

1、自动类型转换(隐式类型转换)

条件:

a.两种类型彼此兼容

b.目标类型的取值范围要大于源类型

2、强制类型转换(显示类型转换)

格式:目标类型常量=(目标类型)值

注:字符串可以使用加号“+”同其他的数据类型相连而形成一个新的字符串。

变量的作用域

代码块决定了变量的作用域,作用域决定了变量的可见性和存在时间。

局部变量

在一个函数或函数里面的代码块中定义的变量称为局部变量。

局部变量在进行取值操作前必须被初始化或进行过赋值操作。

函数

1、定义函数的格式

返回值类型函数名(参数类型形式参数1,参数类型形式参数2,...)

{

程序代码

return返回值;

}

2、函数的重载

函数的重载就是在一个类中可以同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。

Java基础——Java语法基础(2)——运算符

Java中的运算符

1、算术运算符

a.字符串+其他类型=字符串

b.如果对负数求余,可以把除数负号忽略不计,如5%-1=1。但如果被除数是负数就另当别论了。

2、赋值运算符

a.在Java中,可以把赋值语句连在一起,如:x=y=z=5;

b.x+=y相当于x=x+y

3、比较运算符

a.要注意比较运算符“==”和赋值运算符“=”的区别,特别是布尔型变量进行比较时。

b.可以将比较运算的表达式写为“false==变量”的形式,以防止误写为赋值运算。

4、逻辑运算符

a.逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。

b.“&”和“&&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&&”的左边为false,则将不会计算其右边的表达式。“|”和“||”的区别与“&”和“&&”的区别一样。

5、位运算符

位运算——对数据按二进制位进行移位操作。

适用类型:byte,short,char,int,long

位运算包括:

&位与

|位或

^位异或

<<左移,左移n位相当于乘以2的n次方

>>右移,右移n位相当于除以2的n次方

>>>无符号右移

注:

a.位运算符也可以与“=”赋值运算符组合产生新的赋值运算符,如:&=,<<=等。

b.移位不会改变变量本身的值,如a>>1在一行语句中单独存在毫无意义。

c.对低于int型的操作数将先自动转换为int型再移位;对int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数;对于long型整数移位时则是先将移位位数对64取模。

运算符的优先级

编程技巧:

1、不要在一行中编写太复杂的表达式,可以将其分解为几条语句。

2、多用括号。

Java基础——Java语法基础(3)

程序控制流程

1、顺序结构

按顺序执行

2、if条件语句

a.if...

b.if...else...

可简写为:变量=布尔表达式?语句1:语句2;

c.if...elseif...else...

3、switch选择语句

switch(表达式)

{

case取值1:

语句块1;

break;

...

case取值n:

语句块n;

break;

default:

语句块n+1;

break;

}

4、while循环语句

while(条件表达式)

{

执行语句

}

5、dowhile循环语句

do

{

执行语句

}while(条件表达式)

6、for循环语句

for(初始化表达式;循环条件表达式;循环后操作表达式)

{

执行语句

}

7、增强for循环

for(循环变量类型循环变量名称:要被遍历的对象)

{

执行语句

}

8、break与continue语句

a.一个无标号的break语句会把控制传回当前最内层循环(while,do,for,switch)的下一条语句。

b.无标号的continue语句的作用是跳过当前循环的剩余语句块,接着执行下一次循环。

数组

1、数组的定义

如:int[]x=newint[100];

或intx[]=newint[100];

2、数组的静态初始化

如:int[]aa=newint[]{3,4,5};

3、多维数据

如:

int[][]xx=newint[3][];

xx[0]=newint[3];

xx[1]=newint[2];

4、一些与数组相关的函数

a.System.array(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)复制数组,将源数组srcPos开始的length个元素从目标数组的destPos位置开始存储。

b.Array.sort()数组升序排序

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:748
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:718
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:878
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:911
python股票数据获取 发布:2025-10-20 07:39:44 浏览:875