大家好,今天小编关注到一个比较有意思的话题,就是关于java语言编译过程的问题,于是小编就整理了4个相关介绍Java语言编译过程的解答,让我们一起看看吧。
如何用命令行编译,运行第一个JAVA程序?
我们先新建文本文档,输入自己的j***a程序。这里我写一个简单的j***a程序,来做示范。import j***a.util.*;public class HelloDate{public static void main(String[] args){System.out.println("Hello,it's:");System.out.println(new Date());}}然后另存为一个j***a文件。
1.选择文件--->另存为--->名称为“HelloDate.j***a”----->选择“所有文件”。
2.记住自己这个文件的存储位置。(方便我们调用哦!)打开程序---->附件--->命令提示符。由于我的那个j***a文本保存在了F:/j***a/(在F盘下的j***a文件夹里)下,所以如果要想编译,就需要先通过命令提示符进入j***a这个文件夹,具体步骤如下:1.进入F盘:输入【F:】,然后按下回车键【Enter】2.输入【cd j***a】,按下回车键【Enter】这样就已经进入了。这里的cd的意思就是进入的意思。紧接着调用j***a编译器进行编译。输入【j***ac HelloDate。j***a】,然后按下回车键【Enter】然后运行结果。输入【j***a HelloDate】,按下回车键【Enter】7经验总结:运行一个j***a程序的大概的流程是:书写源代码------>编译------->运行---->。
-------------河南新华
编译一个j***a源程序文件,会产生多少个字节码文件?
一般情况下一个J***a文件代表一个类,在编译时会产生一个字节码.class文件。 但是在J***a中 一个源文件中可以包含多个类,但是只能有一个public类,其他的都成为内部类,这时编译时会生成多个字节码文件。一个是那个public类也是该源文件名对应的....
为什么大家都说J***a,可以一次编译,到处运行呢?
这个“到处运行”是说任何平台上只要安装了JRE,就可以运行已经编译过的(不管是什么环境编译的)J***a程序。ps:如果在windows平台上运行,则通过windows平台上的j***a虚拟机(VM)进行解释。
如果运行在linux平台上,则通过linux平台上的j***a虚拟机进行解释执行。
所以说能跨平台“到处运行”,前提是平台上必须要有相匹配的j***a虚拟机。如果没有j***a虚拟机,则不能进行跨平台。
如何防止J***A程序源代码被反编译?
防止J***a开发出来的程序被别人反编译有很多种方法,下面给你介绍几种:
1、隔离J***a程序
最简单的方法就是让用户不能够访问到J***a Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的J***a Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离J***a程序。
2、对Class文件进行加密
为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。
3、转换成本地代码
将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键转换。如果仅仅转换关键部分模块,J***a程序在使用这些模块时,需要使用JNI技术进行调用。
4、代码混淆
代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化[_a***_],混淆理论的成熟,经过混淆的J***a代码还是能够很好地防止反编译。
不同保护技术比较希望能给大家带来参考:
到此,以上就是小编对于j***a语言编译过程的问题就介绍到这了,希望介绍关于j***a语言编译过程的4点解答对大家有用。