zoukankan      html  css  js  c++  java
  • [Java] CLASSPATH环境变量的设置是否是必须的

    以前学习过Java 的读者可能对 CLASSPATH 环境变量不陌生,几乎每一本介绍Java 入门的图书里
    都会介绍 CLASSPATH 环境变量的设置,但对于 CLASSPATH 环境变量的作用则常常语焉不详。


    实际上,如果使用1.5以上版本的JDK , 完全可以不用设置CLASSPATH 环境变量


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

    当使用"java Java 类名"命令来运行Java 程序时,
    JRE 到哪里去搜索Java 类呢?可能有读者会回答, 在当前路径下搜索啊。这个回答很聪明,但1. 4 以前
    版本的JDK 都没有设计这个功能,这意味着即使当前路径己经包含了 HelloWorld.class , 并在当前路径
    下执行"java Hello World ",系统将一样提示找不到HelloWorld 类。


    如果使用1.4 以前版本的JDK,则需要在CLASSPATH 环境变量中添加点 (.) ,用以告诉JRE 需要
    在当前路径下搜索Java 类。


    除此之外, 编译和运行Java 程序还需要JDK 的lib 路径下 dt.jar 和 tools.jar 文件中的 Java 类, 因此
    还需要把这两个文件添加到CLASSPATH 环境变量里。

    提示:JDK9 的 lib 目录已经不再包含 dt.jar 和 tools .jar 文件。

    因此, 如果使用1.4 以前版本的JDK 来编译和运行Java 程序,常常需要设置 CLASSPATH 环境变
    量的值为.;%JAVA HOME%libdt.jar;%JAVA_HOME%lib ools.jar (其中%JAVA HOME%代表JDK 的安
    装目录) 。

    提示:只有使用早期版本的 JDK 时, 才需要设置 CLASSPATH 环境变量。

    当然,即使使用JDK l. 5 以上版本的JDK ,也可以设置CLASSPATH 环境变量(通常用于加载第三
    方类库) , 一旦设置了该环境变量, JRE 将会按该环境变量指定的路径来搜索Java 类。这意味着如果
    CLASSPATH 环境变量中不包括点(.) ,也就是没有包含当前路径, JRE 不会在当前路径下搜索Java 类。

    如果想在运行Java 程序时临时指定JRE 搜索Java 类的路径,则可以使用classpath 选项(或用-cp
    选项, -cp 是简写,作用完全相同),即按如下格式来运行Java 命令:

    java - classpath dirl;dir2;dir3 .. .; dirN Java 类

    -classpath 选项的值可以是一系列的路径,多个路径之间在Windows 平台上以分号(;) 隔开,在
    Linux 平台上则以冒号(:) 隔开。

    如果在运行Java 程序时指定了-classpath 选项的值, JRE 将严格按-classpath 选项所指定的路径来搜
    索Java 类,即不会在当前路径下搜索Java 类, CLASSPATH 环境变量所指定的搜索路径也不再有效。

    如果想使CLASSPATH 环境变量指定的搜索路径有效,而且还会在当前路径下搜索Java 类,则可
    以按如下格式来运行Java 程序:
    java - classpath %CLASSPATH % ; .; dirl ; dir2 ; dir3.. .;dirN Java 类

    上面命令通过%CLASSPATH%来引用CLASSPATH 环境变量的值,并在-classpath 选项的值里添加
    了一个点,强制JRE在当前路径下搜索Java 类。

  • 相关阅读:
    c++ 判断是元音还是辅音
    c++示例 计算器
    c++容器 算法 迭代
    获取 Django版本号的两种方式
    ImportError: No module named pytz
    Nginx配置proxy_pass转发的/路径问题
    VIM复制粘贴大全!
    SSL协议与数字证书原理
    分析支付宝客户端的插件机制
    PHP session的实现原理
  • 原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/12175415.html
Copyright © 2011-2022 走看看