java代码编译,Java代码编译时发生错误,由谁来报告?

发布时间:2023-01-09

本文目录一览:

  1. 如何编译java
  2. 简述JAVA程序的编辑编译和运行过程
  3. 什么是Java代码的编译与反编译?
  4. JAVA代码编译

如何编译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());
    }
}
  1. 然后另存为一个java文件。
  • 选择文件 → 另存为 → 名称为“HelloDate.java” → 选择“所有文件”。
  • 记住自己这个文件的存储位置。(方便调用!)
  1. 打开程序 → 附件 → 命令提示符。
  2. 由于我的那个java文本保存在了 F:/java/(在F盘下的java文件夹里)下,所以如果要想编译,就需要先通过命令提示符进入java这个文件夹,具体步骤如下:
  • 进入F盘:输入【F:】,然后按下回车键【Enter】
  • 输入【cd java】,按下回车键【Enter】 这样就已经进入了。这里的 cd 的意思就是进入的意思。
  1. 紧接着调用java编译器进行编译。 输入【javac HelloDate.java】,然后按下回车键【Enter】 然后运行结果。 输入【java HelloDate】,按下回车键【Enter】 经验总结:运行一个java程序的大概的流程是: 书写源代码 → 编译 → 运行 → 结束。 注意事项:
  2. 在输入的时候一定要注意区分大小写。
  3. 操作之前要保证自己的电脑配置了java的运行环境。

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

第一步(编译):创建完源文件之后,程序会先被编译为 .class 文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点像 make。 如果java编译器在指定目录下找不到该类所依赖的类的 .class 文件或者 .java 源文件的话,编译器会报“can't find symbol”的错误。 第二步(运行):Java类运行的过程大概可分为两个过程:

  1. 类的加载
  2. 类的执行 需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。 特别说明:Java类中所有 public 和 protected 的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法 clinit 都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。 扩展资料: Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。 Java代码编译:是由Java源码编译器来完成; Java字节码的执行:是由JVM执行引擎来完成。 Java程序从源文件创建到程序运行要经过两大步骤:
  3. 源文件由编译器编译成字节码(ByteCode)
  4. 字节码由Java虚拟机解释运行。因为Java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言("semi-interpreted" language)。

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

一、什么是编译

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

二、什么是反编译

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

三、Java类的编译与反编译

我们在最初学习Java的时候,会接触到两个命令:javacjava,那个时候我们就知道,javac 是用来编译 Java 类的,就是将我们写好的 helloworld.java 文件编译成 helloworld.class 文件。 .class 文件打破了 C 或者 C++ 等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而 Java .class 文件是可以运行在任何支持 Java 虚拟机的硬件平台和操作系统上的二进制文件。 那么反编译呢,就是通过 helloworld.class 文件得到 .java 文件(或者说是程序员能看懂的 Java 文件)。

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

  1. 我们只有一个类的 .class 文件,但是我们又看不懂 Java 的 .class 文件,那么我们可以把它反编译成我们可以看得懂的文件。
  2. 学习 Java 过程中,JDK 的每个版本都会加入越来越多的语法糖,有些时候我们想知道 Java 一些实现细节,我们可以借助反编译。

五、反编译工具

  1. javap
  2. Jad(官网推荐) 客户端: 可以在官网下载可执行文件,找到对应操作系统的对应版本,然后进行安装使用。 因为我使用的是 Linux 操作系统,所以我下载的是 Linux 版本的工具,这个工具下载好之后会有一个执行文件,只要在执行文件所在目录执行 ./jad helloworld.class 就会在当前目录下生成 helloworld.jad 文件,该文件里就是我们很熟悉的 Java 代码。 Eclipse 插件: 下载地址在官网下载插件的 jar 包,然后将 jar 包放到 Eclipse 的 plugins 目录下。在打开 Eclipse,Eclipse → Window → Preferences → Java,此时你会发现会比原来多了一个 JadClipse 的选项,单击,在 Path to decompiler 中输入你刚才放置 jad.exe 的位置,也可以制定临时文件的目录。当然在 JadClipse 下还有一些子选项,如 Debug,Directives 等,按照默认配置即可。基本配置完毕后,我们可以查看一下 class 文件的默认打开方式,Eclipse → Window → Preferences → General → Editors → File Associations,我们可以看到 class 文件的打开方式有两个,JadClipse 和 Eclipse 自带的 ClassFileViewer,而 JadClipse 是默认的。全部配置完成,下面我们可以查看源码了,选择需要查看的类,按 F3 即可查看源码。

JAVA代码编译

public class Test {
    public static void main(String args[]) {
        Square square = new Square(4);
        double area = square.area();
        System.out.println("面积为:" + area);
    }
}
interface IShape {
    public double area();
}
class Square implements IShape {
    private double a;
    public Square(double a) {
        this.a = a;
    }
    @Override
    public double area() {
        return a * a;
    }
}