JAVA基础梳理1:java运行环境、命令行编译执行、path和classpath作用 - Go语言中文社区

JAVA基础梳理1:java运行环境、命令行编译执行、path和classpath作用


1、java运行环境

  安装java一般是安装JDK,那么什么是JDK?什么又是JRE?

  (以下来自百度定义)

  JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。

  JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。 。

  另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment)JRE是支持Java程序运行的标准环境 。

  JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可 。





2、在命令行编译执行java程序(windows)

  要知道怎么在命令行编译执行程序,首先我们要知道java程序具体的执行过程。
 
 

  如上图所示,一个java程序完整的执行过程是:

  首先, 按照java的语法写一个以 .java 为后缀的源程序

  其次,通过java编译器将源程序编译成字节码文件,即以 .class 为后缀的文件

  然后,经过类装载器、字节码校验器、解释器等的层层运行,转变为操作系统平台认识的可执行文件。如在windows操作系统下,就转变为以 .exe为 后缀的文件

  最后,由操作系统平台执行,给出结果。

  java的跨平台特性,就是在第三步将字节码文件转换成操作系统可执行文件时,对于不同的操作系统可以转换成不同操作系统可以执行的文件。java核心机制之一的java虚拟机机制就是这个作用。java虚拟机可以理解成一个以字节码为机器指令的cpu,对于不同的运行环境,有不同的虚拟机。
 
   了解了java程序的执行过程,我们就可以知道在命令行下编译、执行java程序需要怎么做。先编译后运行。
 
    在命令行下跳转到程序存放路径,
   
    编译:输入javac  *.java   (*指源程序文件名)   将其编译成字节码文件,执行完后命令你会发现程序目录下出现了一个对应的 .class文件

    运行:并不是输入java  *.class  而是输入 java   * (*指类名,即程序中的public 类名,与源文件程序文件名一致。java语法规则)
  
   


3、path和classpath作用

  在安装了JDK以后,一般的教程都会直接让我们配置path和classpath,可是它们的作用是什么?为什么要配置成那样?

path

  之前讲过,编译java程序需要在命令行输入javac *.java

  在windows的DOS命令行下输入javac:

  其实是执行了windows下的文件——例如D:jdkbin(编译好的程序、可执行程序存放的地方)javac.exe


  那么windows为什么会知道去这条路径寻找javac.exe这个可执行文件呢?

  当我们在命令行输入相关命令,windows一般会去环境变量path里的各个目录找,看看有没有相应可执行文件,有的话直接执行,  没有的话会给出相关信息。


  因此,为了让javac这个命令生效,我们需要配置环境变量path,将javac的目录加进来。

  在  我的电脑/属性/高级/环境变量/系统变量   中找到path,打开JDK中的bin文件夹,找到javac.exe存放地。将文件栏上的地址复制下来,黏贴到path当中的目录后面,目录与目录之间用分号;隔开。


classpath


  系统知道去哪找javac,那么配置classpath是为了知道去哪找java?并不是,在配置path时就知道去哪找java命令了。javac.exe与java.exe是存放在一起的。


  之所以配置classpath,是因为大项目中多个class文件要相互配合,一个class要用另一个class,去哪找另一个class。去哪找呢?

  答案是在classpath里找。


  所以我们在 我的电脑/属性/高级/环境变量/系统变量  里添加一个classpath 。同样的找到jdk下的lib(类库),那里存放着许多类文件,将目录添加进去就行了 。也是用;分开。(可以添加  ; .     ,就在当前执行程序目录下找 )


  有些添加home变量不过是将path和classpath中的前半部分D:jdk提取出来,后面设置path和classpath需要引入


给出具体定义

 

  path:windows系统执行命令时要搜寻的路径

 

  classpath : java在编译和运行时要找的class所在路径

  



版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/funj_/article/details/78009688
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 22:53:28
  • 阅读 ( 1172 )
  • 分类:Go环境配置

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢