关于最新配置CLASSPATH环境变量定位类

1) 如果使用1.5以上版本的JDK, 完全可以不用设置CLASSPATH环境变量
      即使不设置CLASSPATH环境变量, 完全可以正常编译和运行Java程序

2) 那么CLASSPATH环境变量的作用是什么呢?
      当使用"java Java类名"命令来运行Java程序时, JRE到那里去搜索Java类呢? 1.5版本之后, 会默认在当前路径;但是1.4版本之前版本的JDK, 则需要在CLASSPATH环境变量中添加点(.), 来告诉JRE需要在当前路径下搜索Java类

3) 除此之外, 编译和运行Java程序还需要JDK的lib路径下dt.jar 和 tools.jar 文件中的Java类, 因此还需要这两个文件添加CLASSPATH环境变量里
      tools.jar 是系统用来编译一个类的时候用到的,即执行javac的时候用到
      dt.jar是关于运行环境的类库,主要是swing的包 在用到swing时最好加上。(应该是因为我用的是JDK8的原因, 即使是不添加这两个包的也能正常编译运行)

       JDK11的lib目录已经不再包含 dt.jar 和 tools.jar文件

4) 使用1.4以前版本的JDK来编译和运行Java程序, 常常需要设CLASSPATH环境变量的值为
       .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(其中%JAVA_HOME%代表JDK的安装目录)
       win7 和 win10 有区别 win10为了安全性, 已经把每个位置都分开了, 不用再这么写了(但其实win10有时候在点开的时候, 即使变量很多也依然会出现同win7这样全在一行的不确定情况)

5) 使用1.5以上版本的JDK, 也可以设置CLASSPATH环境变量(通常用于加载第三方类库或者自定义类),
       一旦设置了该环境变量, JRE 将会按环境变量指定的路径来搜索 Java 类. 这意味着如果添加CLASSPATH环境变量, 务必在该环境变量值中包含点(.), 用于表示当前路径

       如果想在运行 Java 程序时临时指定 JRE 搜索 Java 类的路径, 则可以使用 -classpath 选项(或用-cp缩写)

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

       多个路径之间在windows平台上以分号(;)隔开, 在Linux平台上则以冒号(:)隔开
       java -classpath C:\Users\15046\Desktop\Test\com\duan\test5_1 HelloWorld(注意, 最后的Java类名和前面的路径之间有空格)

6) 对于简单的程序如HelloWorld可以直接运行, 可是对于有继承, 包等关系的自定义类怎么运行呢?
       一般我们有这些关系的java文件在编译的时候, class文件就要放在对应的包结构中, 我们则需要把包所在父路径添加到CLASSPATH环境变量中, 在调用的时候, 要将他们作为整体来调用(如何编译有package等关键字的源文件详细内容可以看我上一篇如何运行有 package 语句的源文件)

       除了临时添加环境变量, 也可以在CLASSPATH环境添加永久变量               C:\Users\15046\Desktop\Test;
              java com.duan.test5_1.Test
       Java在运行class文件时, JRE到 C:\Users\15046\Desktop\Test; 路径下找 class 文件运行, 因此相当于我们在计算机的任意位置进入cmd都能直接执行此路径下的

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值