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

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即可 。

5d17b5868247bfb1c8605428a90cfb87.png

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

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

d9f9e6ca4cf8cd7964fe927d82fdc5de.png

如上图所示,一个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所在路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值