多JDK环境下Jdeps未读取环境变量,求助指定JDK9的Jdeps执行方法
解决JDK版本不一致下Jdeps的调用问题
这种情况其实挺常见的——明明JAVA_HOME和PATH都指向了JDK9,java命令也正常,但jdeps却还是调用旧版本,大概率是PATH的优先级或者缓存问题,给你几个靠谱的解决办法:
1. 先定位当前运行的jdeps来自哪里
先搞清楚到底是哪个路径的jdeps在执行:
- Windows系统,打开命令提示符输入:
where jdeps - Linux/macOS系统,在终端输入:
which jdeps
如果输出的路径是JDK8的bin目录,那问题就找到了——PATH里JDK8的路径排在JDK9前面,系统会优先找前面的。
2. 调整PATH优先级(一劳永逸)
把JDK9的bin目录放到PATH的最前面:
- Windows:打开「系统属性」→「高级」→「环境变量」,找到系统变量里的
PATH,把JDK9的bin路径(比如C:\Program Files\Java\jdk-9.0.4\bin)移到列表最顶端,保存后关闭所有命令窗口再重新打开。 - Linux/macOS:打开终端,编辑你的shell配置文件(比如
~/.bashrc或~/.zshrc),把PATH的配置改成:
保存后执行export PATH=/usr/lib/jvm/jdk-9.x.x/bin:$PATHsource ~/.bashrc(对应你的配置文件)刷新环境变量。
3. 直接用绝对路径调用(临时快速解决)
如果不想改环境变量,直接用JDK9的绝对路径执行jdeps就行:
- Windows示例:
C:\Program Files\Java\jdk-9.0.4\bin\jdeps.exe -version - Linux/macOS示例:
/usr/lib/jvm/jdk-9.x.x/bin/jdeps -version
4. 刷新命令行缓存
有时候环境变量改了,但当前命令窗口没刷新,Windows下直接关闭所有命令提示符再重新打开;Linux/macOS下用source命令刷新配置文件就行。
做完以上操作后,再执行jdeps -version应该就能看到JDK9的版本了。
内容的提问来源于stack exchange,提问作者Curious Coder
相关产品推荐
相关产品推荐

