您的位置:

java的编译,java的编译过程及原理

本文目录一览:

如何编译java?

比如你要编译一个java文件,路径是"D:\java\Test.java"

在dos中输入下面的命令

d: ---表示进入d盘

cd java ---表示进入java文件夹

javac Test.java ---表示将Test.java文件编译成class文件

java Test ---表示运行编译后的Test

如何编译一个java文件

javac 用于编译Java文件,格式为:

java [options] [sourcefiles] [@files]

其中:

options:命令行选项;

sourcefiles:一个或多个要编译的源文件;

@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。

有几个比较重要的选项:

-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;

-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;

-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;

需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:

windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;

linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :

简述JAVA程序的编辑编译和运行过程

第一步(编译): 创建完源文件之后,程序会先被编译为.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应用程序可分为三个步骤:

1.创建一个带有文件扩展名 *.java 的源文件

1).使用编辑器(如记事本,小编使用的是notepad++),输入以下6行文本:

1 //一个简单的application例子:打印一行文本

2 class Hello {

3 public static void main (String args[]){

4 System.out.println("Hello Java,This is my first Java Application!");

5     }

6 }

输入完成,如下图所示

2).把文件名命名为Hello.java ,并保存,

2.使用java编辑器javac.exe编译源文件生成一个带有文件扩展 *.class 的字节码文件

1).win+R,在文本框输入cmd,回车,进入DOS窗口。

2).使用cd命令将路径转入源文件“Hello.java”所在路径(cd用法可参照DOC窗口之cd命令),输入“javac Hello.java”命令,回车。

同时,我们在源文件“Hello.java”所在文件夹可以发现多了一个字节码文件(编辑器javac.exe编译的结果),这就对了。

3.使用java解释器 java.exe 运行字节码

在当前路径下,输入 “java Hello” 命令,回车。运行结果如下

爪哇之路开启成功。

如何编译java

用命令提示符编译java程序的步骤:

1.先新建文本文档,输入自己的java程序。

这里我写一个简单的java程序,来做示范。

import java.util.*;

public class HelloDate{

public static void main(String[] args)

{

  System.out.println("Hello,it's:");

  System.out.println(new Date());

}

}

2.然后另存为一个java文件。

1.选择文件---另存为---名称为“HelloDate.java”-----选择“所有文件”。

2.记住自己这个文件的存储位置。(方便调用!)

3.打开程序----附件---命令提示符。

4.由于我的那个java文本保存在了F:/java/(在F盘下的java文件夹里)下,所以如果要想编译,就需要先通过命令提示符进入java这个文件夹,具体步骤如下:

1.进入F盘:输入【F:】,然后按下回车键【Enter】

2.输入【cd java】,按下回车键【Enter】

这样就已经进入了。这里的cd的意思就是进入的意思。

5.紧接着调用java编译器进行编译。

输入【javac HelloDate。java】,然后按下回车键【Enter】

然后运行结果。

输入【java HelloDate】,按下回车键【Enter】

经验总结:运行一个java程序的大概的流程是:

书写源代码------编译-------运行----结束。

注意事项:

1.在输入的时候一定要注意区分大小写。

2.操作之前要保证自己的电脑配置了java的运行环境。

什么是Java代码的编译与反编译?

Java代码的编译与反编译

2017-02-21Hollis数盟

一、什么是编译

1、利用编译程序从源语言编写的源程序产生目标程序的过程。

2、用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

二、什么是反编译

计算机软件反向工程(Reverseengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。

三、Java类的编译与反编译

我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件。

class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Javaclass文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。

那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)

四、什么时候会用到反编译

1、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件。

2、学习Java过程中,JDK的每个版本都会加入越来越多的语法糖,有些时候我们想知道Java一些实现细节,我们可以借助反编译。

五、反编译工具

1、javap

2、Jad:官网(墙裂推荐)

客户端:

可以在官网下载可执行文件,找到对应的操作系统的对应版本,然后进行安装使用。

因为我使用的是linux操作系统,所以我下载的是Linux版本的工具,这个工具下载好之后会有一个执行文件,只要在执行文件所在目录执行./jadhelloworld.class就会在当前目录下生成helloworld.jad文件,该文件里就是我们很熟悉的Java代码

Eclipse插件:

下载地址在官网下载插件的jar包,然后将jar包放到eclipse的plugins目录下‘在打开Eclipse,Eclipse-Window-Preferences-Java,此时你会发现会比原来多了一个JadClipse的选项,单击,在Pathtodecompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置即可。基本配置完毕后,我们可以查看一下class文件的默认打开方式,Eclipse-Window-Preferences-General-Editors-FileAssociations我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的ClassFileViewer,而JadClipse是默认的。全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码