一、 编译和运行Java程序必须经过两个步骤:

1、将源文件编译成字节码;

2、解释执行平台无关的字节码程序。


二、问题


    以上两个步骤分别需要使用javac和java两个命令(javac命令对java源文件进行编译生成class文件,java命令对生成的class文件进行运行),如果我们直接在cmd命令行窗口里依次输入javac和java命令,可能会看到以下错误:

java 路径配置 java配置path_数据库


    另外当我们移动了class文件后,执行java命令时,会出现以下错误:

java 路径配置 java配置path_环境变量_02


三、分析问题

为什么会出现这样的错误。

错误一:原因是命令行或控制台没有找到javac和java命令。

javac.exe或java.exe


错误二:这是因为命令行没有找到class文件。

    当我们执行java命令时,若没有配置classpath环境变量,则java虚拟机会在当前目录下查找class文件(即Java类),若当前目录下没有,则会出错;若我们配置了classpath环境变量,则java虚拟机会直接到环境变量指定的路径查找。

    

四、解决方案 

错误一:  

    根据问题分析,错误一的解决方案有两种:一是需要我们找到文件所在目录,二是直接在系统里配置path环境变量。

很显然第一种方法太麻烦了些,而第二种方法可谓是一劳永逸,它可以让我们在任意目录下都可以执行程序。那得如何配置path环境变量呢?


path环境变量

   Windows操作系统根据Path环境变量来查找命令。PATH环境变量的值是一系列路径,如我的计算机里的path变量是这样的:

D:\TELLHOW\java\jdk1.5.0_09\bin;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;C:\Windows\System32;D:\app\Administrator\product\11.2.0\dbhome_1\BIN;D:\Program Files\MySQL\MySQL Server 5.5\bin

Windows将在这一系列的路径中依次查到命令,如果能找到这个命令,则该命令是可执行的,否则就会出错。

(path和PATH在Windows操作系统中是没有区别的,它不区分大小写)

只需找到javac和java命令的存放路径,如:D:\TELLHOW\java\jdk1.5.0_09\bin,添加进path环境变量中即可,注意用“;”分号隔开。

java 路径配置 java配置path_操作系统_03

我们可以在命令行内直接输入javac,按“Enter”键来验证配置是否正确,若看到以上信息(这其实是javac.exe的使用信息,以后我们会用到里面的几个),则表示配置正确(这与路径“E:/Demo/java”无关)。

    写到这可能有人会问,“E:/Demo/java”是谁的地址呢?很显然这是程序javac.exe所运行文件Test.java的路径。


错误二:

    几乎每一本介绍java入门的书里都会介绍classpath环境变量的配置,在网上也有很多,但对于classpath环境变量的作用则常常语焉不详。

是关于运行环境的类库,主要是swing的包)和tools.jar(是关于一些工具的类库)文件中的Java类,因此不再需要设置classpath环境变量了。

    但是其之前的版本并没有这样的功能,所以我们会看到网上会有这样的配置:.;C:\ProgramFiles\Java\jdk1.7.0_05\lib\dt.jar;C:\Program Files\Java\jdk1.7.0_05\lib\tools.jar;

这个配置中前面一点表示当前路径,另外是将dt.jar和tools.jar两个文件添加到classpath环境变量里。

从上不知道你有没有发现问题,一个1.7版本的竟然还在使用1.4及以前的classpath环境变量配置方法,这似乎说明了一个问题,IT行业飞速发展,知识在不断地更新,网上其实有很多的知识是滞后的,所以我们必须重视这样的一个问题,不能太过实用主义。

    那么classpath环境变量的作用是什么呢?

    如果我们有很多类文件并放在不同的路径下,当我们需要执行指定路径下的文件时,这时classpath环境变量就体现了它的用处。


五、问题延伸

    不知你有没有想过,在一些特殊的情况下我们可能会使用临时的环境变量配置。比方说我们借用别人的计算机时,却不能改动别人的计算机设置,这时你会怎么做?我想最好的办法就是一个移动U盘加临时环境变量配置。

临时环境变量配置可以使用DOS命令,在cmd命令行中输入set,你会看到你的计算机中所有的环境变量,如图所示:

java 路径配置 java配置path_java_04

而通过输入set  path可显示出path的所有变量,如图:

java 路径配置 java配置path_操作系统_05


而设置临时的path环境变量则只需输入:

set  path=F:/Demo/java即可,它对计算机系统中的配置没有影响。

java 路径配置 java配置path_java 路径配置_06

另有输入:

set path=F:/Demo/java;%path%

这表示在原有的设置上添加一个路径,对对计算机系统中的配置没有影响。

总结一下就是:

set:用于查看本机的所有环境变量;

set 变量名:查看一个具体的环境变量;

set 变量名=:清空一个环境变量;

set  变量名=具体值:给指定变量定义具体指;

set 变量名=具体值;%path%:在原有环境变量基础上添加新值。

注意:这种配置方式只在当前dos窗口有效,窗口关闭后则配置消失。


    同理可得,classpath环境变量的临时配置也是一样,在此不多啰嗦。



转载于:https://blog.51cto.com/wuyunncu/1593900