专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java的编译及运行

Java的编译及运行

更新时间:2022-09-27 11:03:22 来源:动力节点 浏览775次

动力节点小来为大家介绍Java的编译及运行。

1.编写源文件

一个源文件可以有多个类(class),但只能有一个类是public类

如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是 .java(注意这个有个点)

如果源文件没有public类,那么只要名字和某个类相同,且扩展名是.java也可以

2.保存源文件

保存类型选择为所以类型,编码选择为ANSI

3.额外附加:

(1)C盘转到D盘

(2)进入某个子目录(文件夹),比如下面的进入E盘的java文件夹

(3)退出某个子目录,比如退出java文件夹

4.编译器(javac.exe)

javac B.java

在上面可以看到编译成功后出现了B.class文件(字节码文件)

如果源文件有多个类,编译源文件会生成多个扩展名为.class的文件,在每个扩展名为.class的文件中只存放一个类的字节码,其文件名与该类的名字相同。

如果文件是这个

public class B {
    int a=1;
    int f(int b){
        a=b;
        return a;
    }
}

编译后得到的class文件,我使用反编译器(网上下载的)可以得到这样

public class B {
  int a = 1;  
  int f(int paramInt) {
    this.a = paramInt;
    return this.a;
  }
}

注意:在编译时候可能会出现的问题

(1)如果回车后出现javac不是内部或外部命令,也不是可运行的程序或批处理文件

解决方法:

方法一:重新设置环境变量

方法二:在MS-DOS命令窗口输入path D:jdk1.6in(这个是你jdk)并回车,然后再编译

(2)如果出现两个公共类,而名字是B.java或者是C.java

public class B {
    int a=1;
}
public class C{
    int b=1;
}

编译时候会出现问题

所以符合了前面说的:源文件可以有多个类,但只能有一个类是public类

验证上面这句话:

public class B {
    int a=1;
}
class C{
    int b=1;
}

编译后

如果是这样也可以编译成功

public class B {
    int a=1;
    public class C{
        int b=1;
    }
}

(3)菜鸟看到的(暂时还没验证)

5.解释器(java.exe)

使用java虚拟机中的java解释器(java.exe)来解释,执行其字节码文件(.class文件)

比如源文件:

public class B {
    int a=1;
    int f(int b){
        a=b;
        return a;
    }
//    主类,java应用程序总是从主类的main方法开始执行
    public static void main(String []args){
       B b=new B();
        System.out.println(b.f(3));
    }
}

编译后得到的字节码文件(.class文件),使用反编译器查看

public class B {
  int a = 1;  
  int f(int paramInt) {
    this.a = paramInt;
    return this.a;
  }  
  public static void main(String[] paramArrayOfString) {
    B b = new B();
    System.out.println(b.f(3));
  }
}

运行:java B,得到结果是3

执行过程:java虚拟机首先将程序需要的字节码文件加载到内存,然后解释执行字节码文件,加载到内存的同时就为主类中的main方法分配了入口地址。

注意:

(1)java解释器执行的类名必须是主类的名字(没有扩展名)

(2)如果解释的时候出现错误,可能是main方法没有写对,或者是系统变量不正确

在MS-DOS输入:ClassPath=D:jdk1.7jrelib t.jar;.;然后回车确定,再使用java解释器运行主类。

(3)不可以带着目录运行程序,比如

java C: sB

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>