java程序经编译后会产生什么?
产生:byte code Java字节码是Java源文件编译产生的中间文件 java虚拟机是可运行java字节码的假想计算机 java的跨平台性也是相对与其他编程语言而言的 先介绍一下c语言的编译过程吧先是C语言源程序 也就是c的文件经过C编译程序编译后,生成windows可执行文件exe文件,然后在windows中执行。再介绍java的编译过程先是java源程序扩展名为java的文件,由java编译程序将java字节码文件,就是class文件然后在java虚拟机中执行。机器码是由CPU来执行的。Java编译后是字节码, 电脑只能运行机器码。Java在运行的时候把字节码变成机器码。C/C++在编译的时候直接编译成机器码。
java如何实现一次编译到处运行?
一次编译到处运行指的是用 java开发的程序,用javac命令编译后,在不同电脑,不同操作系统上,只要你装了JVM(java虚拟机),就能运行,但在实际情况中,由于jdk版本有好几个,OracleJDK、IBMJDK、OpenJDK ,兼容性上并不能做到完美,因此,只能做到一次编译,广泛运行。你的问题是如何实现,我觉得考虑这个意义不大,无论使用的是哪种jdk,一般都能做到兼容的
如何使用apktool.jar进行反编译?
1.下载反编译工具 需要下载四个工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot dex2jar:将apk中的classes.dex转化成Jar文件。 JD-GUI:反编译工具,可以直接查看Jar包的源代码。 apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。 apktool-install-windows-r05-ibot:辅助windows批处理工具。
2.解压缩APK包 apk文件也是一种常见的zip,常用的压缩软件就可轻松地解压apk文件。用压缩软件将apk文件中的文件解压到一个文件夹中,得到APK中的资源包括XML文件和classes.dex文件,classes.dex就是java文件编译再通过dx工具打包而成的。
3.反编译dex文件 解压apk文件后,你会发现res目录的图片没有加密,但java源码编译成了一个classes.dex文件,无法用普通的反编译class文件的方法来处理,dex2jar可以将dex文件转换成普通的jar包。 解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。 DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路径)。 将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
还没有评论,来说两句吧...