
正文
java代码反编译不准确,java反编译internal error
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
从java程序里反编译出来,一字未改再重新编译提示100多个错误?
反编译的程序,不能保证100%的正确的,所以你再编译,很明显问题出来了。有些地方应该还要手动修改一下。
并不是所有的class都能反汇编成java文件的,尤其是那些经过obfuscation(代码混淆)的class文件,混淆器故意生成很难或者根本不可能被反汇编的程序。
(2)错误:这个错误通常是在编译时,语法不当所引起的。例如:括号不匹配,变量未声明等。产生这类错误时,编译程序会出现报错提示,我们根据提示对源程序进行修改即可。这类错误是出现最多的。
相关问答
Q1: java中的编译与反编译?
1、反编译做的就是编译的相反动作。举例来说,例如一个程序用C语言来写,写完之后要编译成CPU可以识别和运行的机器代码,也就是生成EXE程序。
2、你只要选择对应的class文件的路径,点反编译即可。想重新编译.java文件,如果是单个文件的话,开始--》运行--》cmd--》进入dos命令行,输入javac 要编译的文件名即可。
3、-win32\temp 在Eclipse的Windows--Perference--General-Editors-File Associations中修改“*.class”默 认关联的编辑器为“JadClipse Class File Viewer”安装完成,双击class文件,Eclipse将自动反编译了。
4、可以用java反编译器,DJ_java_discompiler 打开下载好的DJ_java_discompiler 选择file,之后点击open。之后出现以下界面。这里我选择一个test.class文件。点击打开之后,出现以下反编译test.java后的界面。这个是test.java的文件。
Q2: java反编译问题,解决后加50分
编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。
将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。
可以将看不懂的.class文件转换成看得懂的.java文件,这样一来就能很方便的读懂别人编写的java代码。
Q3: Java反编译后得到的不是Java源代码。
如果是java写的,它被编译成字节码,但不是真正的机器语言,如果反编译的话,就可以把java源代码反编译出来,c#跟java如出一辙,原理上是很相近的,所以它的程序也可以反编译出源代码。
可以很容易的通过对.class文件进行反射来得到java的源代码,也就是反编译!对于java的反编译,并不是所有内容都会反编译出来,java源文件中的注释、泛型等内容在经过编译和反编译之后会丢失。
你说的java源代码是指编译成的class文件前的java文件。
得到jar包后,下载自已喜欢的反编译工具,推荐使用JD-GUI,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便。打开压缩文件JD-GUI,运行jd-gui.exe,打开上面生成的jar包,即可看到源代码了。
字节编码”的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型。无论哪种结构,一旦用JAVAC 命令编译后,均变成后缀为CLASS的同名可执行文件。这种文件是不可阅读的代码。
Q4: java中经常看到这样的源码,好像不符合java的语法啊,难道是反编译的问题...
恩,反编译的,反编译工具的问题。可以换个反编译工具。
利用编译程序从源语言编写的源程序产生目标程序的过程。用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
读Java源码需要一些技巧和方法,下面是一些建议:熟悉基础知识:在开始阅读源码之前,确保你对Java的基本语法、类库和设计模式有一定的了解。这将帮助你更好地理解源码的结构和原理。
getFileSystem()是一个本地方法,看不到源代码。FileSystem类本来就不是提供给程序员使用的。
你说的java源代码是指编译成的class文件前的java文件。
java代码反编译不准确的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java反编译internal error、java代码反编译不准确的信息别忘了在本站进行查找喔。






