关于Java环境变量CLASSPATH

还记得配置Java环境变量的三板斧吗?

bash 复制代码
export JAVA_HOME=/usr/local/jdk-xx.xx.xx
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

有没有关注过$JAVA_HOME/lib/下是否还有dt.jar、tools.jar?

dt.jar 代表 "development tools"(开发工具)。该 JAR 文件包含了用于图形用户界面(GUI)设计和调试的支持类。它主要为早期版本的 Java 开发环境(如 Sun 的 Java Workshop)提供了组件和资源。

tools.jar 包含了一系列开发者工具的实现,这些工具对于编译、运行时监控和其他开发任务非常重要。这个 JAR 文件包含了 JDK 内部使用的 API,例如 Java 编译器 API (javax.tools.JavaCompiler)、Java 调试接口 (JDWP, Java Debug Wire Protocol) 等。此外,它还包含了其他一些辅助工具和服务,比如 RMI(远程方法调用)编译器、文档生成器等。

从 JDK 9 开始,Oracle 对模块化系统进行了改革,引入了 JPMS(Java Platform Module System),并将许多原本位于 tools.jar 中的内容整合到了新的模块中。这使得 Java 应用程序可以被组织成模块,每个模块都有明确声明的依赖关系。通过模块路径(--module-path-p)来指定模块的位置,而不是传统的类路径(-classpath-cp)。模块化系统增强了代码的封装性和可维护性,并减少了对全局 CLASSPATH 的需求。

所以,CLASSPATH就不用再配置了!两板斧就够了:

bash 复制代码
export JAVA_HOME=/usr/local/jdk-11.0.25/
export PATH=$JAVA_HOME/bin:$PATH
相关推荐
小小晓.32 分钟前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
garmin Chen1 小时前
redis面试题
java·数据库·redis·缓存
格林威1 小时前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
chen<>1 小时前
C++ 六种 memory_order:从原子性到线程间可见性.md
java·linux·开发语言·c++
一直C1 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
十年Java程序媛1 小时前
SpringBoot3 + JDK17 实战复盘:HikariCP 连接耗尽,虚拟线程场景额外注意事项
java·spring boot
m0_734571762 小时前
深入理解C++ 类型转换<三>const_cast
开发语言·c++
luj_17682 小时前
合法避税与投资评估实战指南
c语言·开发语言·网络·经验分享·算法
二十雨辰2 小时前
[Java]-JVM面试题
java·开发语言·jvm
cfm_29142 小时前
ConcurrentHashMap 线程安全机制与 JDK 1.8 演进
java·开发语言·安全