|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
现在JAVA言语在全球局限正热火朝天般的盛行,它广范地使用在INTERNET的数据库、多媒体、CGI、及静态网页的制造方面。1999年在美国对JAVA程序员的需求量初次凌驾C++!
作者因比来剖析一些JAVA程序,对JAVA的反编译举行了一番懂得,上面将我所懂得的情形作以下先容,但愿对JAVA喜好者有所匡助。
JAVA是接纳一种称做“字节编码”的程序布局,分为小程序(嵌进到HTML文件中)和使用程序(间接在命令形态下实行)两品种型。不管哪一种布局,一旦用JAVAC命令编译后,均酿成后缀为CLASS的同名可实行文件。这类文件是不成浏览的代码。
经查阅了SUN公司的JDK(JDK1.1.3)文档材料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于JDKBIN上面,经按申明利用后,感应扫兴,本来这个“反编译”仅可反编译出JAVA程序的数据区(界说)、多少办法和类的援用等。
这里我用了一个复杂例子来讲明成绩。
JAVA的源程序hello_java.java以下:
importjava.applet.*;
importjava.awt.*;
publicclasshello_javaextendsApplet
{
publicvoidpaint(Graphicsg)
{
g.drawString("HelloJava!
",20,20);
}
}
经用反编译命令:javap-c-package-public-privatehello_javahello.java
失掉的反编译了局(hello.java)以下:(有关javap命令的选择参数请见其利用申明,这里-c暗示选择了反编译)
Compiledfromhello_java.java
publicsynchronizedclasshello_javaextendsjava.applet.Applet
/*ACC_SUPERbitset*/
{
publicvoidpaint(java.awt.Graphics);
publichello_java();
<p>
最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。 |
|