关于JAVA环境变量和包机制现阶段认识

2022-08-24 10:12:57 浏览数 (1)

熟悉的环境变量

 想要学习JAVA,第一步安装JDK,安装好了配置环境变量,PATH ,JAVA_HOME,CLASSPATH 这三个配置好,就可以开始编码了。

 配置环境变量的时候,JAVA_HOME,CLASSPATH这俩个是不必须的。JDK1.5之后CLASSPATH是可以不配置的,JRE会从目录文件夹下加载需要的jar,这也是刚开始的时候会疑惑百度出来的CLASSPATH会让我们添加这样一串: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar

那么这么一串有什么用?首先明确2点: 1.在没有配置CLASSPATH环境变量时,java命令在找class文件时是默认在当前目录下寻找的 2.配置过CLASSPATH环境后,java命令是按照CLASSPATH变量中的路径来的寻找class文件的。 上面这一串 .;是干嘛的呢?可以这么理解: ;是分割自定义的classpath,这里定义了3个路径,一个是.,一个是%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar.代表当前路径,%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar分别指向了dt.jar和tools.jar,分别是指的是编译时候用到的类库,和包含swing的运行环境类库。 不过值得注意的是,jdk9以后,已经没有dt.jar和tools.jar了,在配置classpath的时候要么不配置(从当前路径读取),要么可以根据需要配置路径。这也是为什么JAVA官网明确可以不用配置它的原因了。

JAVA中的Package

关于包网上也有很多关于它的讲解,Think in java 和JAVA核心技术都有关于它的介绍,这里列出我的2点理解。 1.防止名字相同的类产生冲突。 2.方便管理。

例如,两个工程师张三和李四在不知情的情况下写了同一个类 Wwang.java,最后都给了你,这个时候为了防止在工程中出现相同类名的冲突就引入了Package。

注意:定义了包的类,在使用javac编译的时候,需要在包的最外层进行编译,不然在引入了别的类的java文件编译时会出现找不到符号等问题。

以上是关于现阶段对它们的理解,后期会结合着类加载机制详细记录一下。

0 人点赞