开发Java程序为什么要配置环境变量?

本文详细介绍了Java环境变量配置的重要性,包括配置环境变量如何使得javac编译器能在任意目录下工作,以及如何通过CLASSPATH环境变量指导Java虚拟机找到.class文件执行。JAVA_HOME的设置能简化路径管理。此外,指出配置环境变量主要是为了在命令行环境下编译和运行Java程序,现代IDE如IntelliJ IDEA等则通常不需要手动配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、配置环境变量与编译Java程序的关系

我们所写的Java程序,到最后都是保存为一个.java 后缀的文档中,这个文件 也叫做源文件。 这个文件其实是不能被执行的,它是需要被编译成一个二进制的一个字节码文件。

这个时候问题来了! 如何将源文件转化为字节码文件!
我们需要使用JDK中提供的编译工具来将它转化为可执行的exe文件,名字叫做javac 它存在于我们jdk安装文件夹的bin目录下但是我们的源文件可能存在于任何一个文件夹中当我们在源文件所在的文件夹中去调用javac编译程序,系统会发现根本就找不到这个它,因为字节码文件与编译程序不在同一个文件夹,除非是特殊情况,源文件和javac编译程序在同一个文件夹。否则都会出现下图这样的错误.在这里插入图片描述
如果我们需要在任何目录下都可以去使用编译程序,那么我们就需要去配置环境变量
我们要在Path这个环境变量当中把javac编译程序所在的位置添加进去!我们都知道javac编译程序位于JDK安装路径下的bin文件夹中,所以我们都就要把bin这个路径添加到环境变量当中。这样,无论源文件在哪里,操作系统都随时能找到javac编译程序并对其进行编译。经过配置之后,bin文件夹下其他的可执行文件也能够在任何目录下被调用,其中包括执行Java程序的java.exe。

二、配置环境变量与执行Java程序的关系

当我们把.java文件转换为.class文件后,就需要去执行这些程序了
1、把.class文件读入到虚拟机的内存
2、转换成机器语言并解释执行
要想执行Java程序,第一步就是先找到.class文件,所以必须让虚拟机知道.class文件的位置。虚拟机是怎样知道.class文件的位置的?它要根据CLASSPATH环境变量去找。我们在CLASSPATH环境变量当中首先会添加”.”(一个英文的点号),这个”.”就表示当前路径。配置了”.”之后,虚拟机在寻找.class文件的时候会在当前路径下进行搜索。
我们通常还会把JDK安装路径下的lib文件夹下的dt.jar和tools.jar这两
个文件的位置也加入到CLASSPATH环境变量中

注意:从JDK1.4之后Java运行时环境(JRE)有了自动搜索当前文件夹下.class文件,并自动加载dt.jar和tools.jar类库文件的功能可以不用配置CLASSPATH环境变量了 !

三、为什么要添加JAVA_HOME

JAVA_HOME环境变量当中配置的是JDK的安装路径,并且我们会在配置Path和CLASSPATH的时候,用%JAVA_HOME%去代替这两个环境变量中的JDK安装路径。这么做有两个好处:
如果我们升级或者更新了JDK的路径 就会发生变化 ,如果我们配置了 JAVA_HOME我只需要重新配置JAVA_HOME即可,而Path和CLASSPATH中涉及到的JDK的安装路径因为用%JAVA_HOME%代替了,所以不需要做任何修改,这样大大减少了工作量和出错的概率;
在这里插入图片描述

在这里插入图片描述

四、环境变量是为了 “在命令行窗口下”编译和运行Java程序而配置??

配置环境变量是为了在命令行窗口下编译和运行Java程序,特意强调了“在命令行窗口下”这个前提,这又是为什么呢?其实,时至今日,很多IDE不需要配置环境变量,也能正确编译和运行Java程序。我们只需要在IDE当中相关的配置菜单下,正确的指定出JDK的安装路径就可以了。除非这个IDE本身也是用Java编写的。因此,如果学习Java语言的时候,直接就使用像IntelliJ IDEA这样的IDE,不去配置环境变量也能正确编译和运行Java程序。但是,如果回到最原始的“命令行窗口”模式下,为了能够在任何目录下都能调用到javac和java这两个exe文件,我们必须要配置环境变量。所以在解释配置环境变量作用的时候,我们特意强调了“在命令行窗口下”这个前提。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值