Java程序的运行需要经历三个步骤:
编辑
编译
运行
其中,编辑是编写源码的过程,编译是将源码编译成class文件。运行时,找的就是class文件,运行程序时,以main函数为入口,开始执行程序,重点是,下次程序运行时,JVM虚拟机不会再次编译源码,而是直接寻找对应的class文件,从而运行程序。
所以,编译源码后,如果有新的修改,需要重新编译,生成class文件,然后,才会执行。
修改源码后若不编译便直接运行,JVM使用的仍然是上一次运行的class文件。
创建Java源程序
Java源程序一般用java作为扩展名,是一个文本文
件,用Java语言写成,可以用任何文本编辑器创建
与编辑;
编译源程序
Java编译器,“javac”,读取你的Java源程序并翻译
成Java虚拟机能够明白的指令集合,且以字节码的
形式保存在文件中。通常,字节码文件以class作为
扩展名;
运行class(字节码)文件
Java解释器读取字节码,取出指令并且翻译成计算
机能执行的代码,完成运行过程;
当你一段代码写完之后一般会经历两个阶段:
1、编译阶段
使用指令:javac
这个阶段,Java编译器(也就是JVM:java虚拟机,后称JVM),首先把你的代码加载完成,然后开始检查语法。如果出现语法错误则提示错误。这个阶段提示的错误我们一般称为编译器错误!
2、运行阶段
使用指令:java
这个阶段,JVM将执行java代码,这个时期出现的错误我们一般称为运行期错误!
编译器错误一般都是语法错误!运行期错误一般都是程序内部(或者程序逻辑)错误!
你说的这个错误就是语法错误!
java规定了在静态方法中不能调用非静态的方法。这个错误已经被整合到了语法错误里面!
java的源程序是通过java的编译器可以编译成class文件 编译出来的文件是为了让java的虚拟机JVM识别 运行也是通过JVM来运行的。。JVM充当一个翻译 把class文件翻译给windows内核接口 这样来运行的。
你刚刚问的为什么不干脆直接编译成exe文件 那是因为java翻译成class文件一方面是为了移植方便 拿到Linux等其他 *** 作系统上 只要有JVM 还是能执行的 如果是生成exe文件 那就丧失了移植性了。 这个是sun原本的意愿
为什么到现在都没有个像样的把java代码编译成exe的软件呢 是因为 代码编译很难 而且编译出的代码要非常规范 这个很难 一般都是搞底层开发的人才有这种技术 虽然也能做出来 但是那些高低层的都不屑于写java编译exe 他们都看java的笑话呢。。 所以咱们这些java程序员很悲哀啊。。写的得意的东西给别人看 别人都不能运行。。
我曾经跟你差不多 对java不能直接编译exe文件很恼火。。现在也算习惯了 唉哥们 真想的话就 苦学底层吧 学个10年8年 然后再花个半年的时间来做这个东西 倒时候咱们这个java中人 肯定都歌颂你赞美你。。现在。。
还有提醒你 现在网上大多数的打着口号说能吧java代码编译成exe的人 都不是真的 他们只是做了个包装 把java包装成exe 但是这种包装也只能对本身机器有效 如果是换台机器 这个包装的exe就不能运行了。。很烂 很*荡
第一步(编译): 创建完源文件之后,程序会先被编译为class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。
如果java编译器在指定目录下找不到该类所其依赖的类的class文件或者java源文件的话,编译器话报“cant find symbol”的错误。
第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。
特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。
扩展资料:
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。
Java代码编译:是由Java源码编译器来完成;
Java字节码的执行:是由JVM执行引擎来完成
Java程序从源文件创建到程序运行要经过两大步骤:
1、源文件由编译器编译成字节码(ByteCode)
2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。
以上就是关于编译源码 后,怎么改 java源码重新编译全部的内容,包括:编译源码 后,怎么改 java源码重新编译、开发与运行Java程序需要经过的三个主要步骤是、java编译和运行。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)