JVM学习问题记录(2) jps命令无法识别

现象:

命令行输入jps命令,提示"jps不是内部或外部命令,也不是可运行的程序"

背景:

学习JVM,测试jdk自带性能分析工具,需要用到jps工具

思路:

先怀疑自己

可能的原因

  • JDK安装有问题,无jps.exe
  • 环境变量设置问题,找不到jps.exe

动手:

  • 去JAVA_HOME配置的查看,发现jps.exe在,用绝对路径执行是正常的
  • 查看环境变量,JAVA_HOME和path配置也是正确的,echo结果也是对的
    这里就感觉很奇怪,而且试了下javac命令是正常的,那也不是路径配置问题,这里卡了很久
    后来灵机一动,去看了下java和javac实际的路径
bash 复制代码
where java
where javac

结果指向的不是自己配置的java路径,而是一个看起来默认的路径

shell 复制代码
C:\Program Files\Common Files\Oracle\Java\javapath\javac.exe

查看了下这个路径下的文件,确实有javac等几个基础的工具

同时去环境变量看了下,path下确实有这个路径

!\[问题记录2.png]

去网上查了下,说是安装较早版本的jdk,会在这个路径下创建一些小型代理exe,并且自动生成这个path,便于升级场景自动更新

结论:

oracle自动path干扰

解决方法,要么删了这个路径,要么把自己配置的路径放前面

我这里将%JAVA_HOME%\bin前移

验证Ok

复制代码
C:\Users\>jps -l
13816 jdk.jcmd/sun.tools.jps.Jps
相关推荐
私人珍藏库8 小时前
[Android] 会计快题库 -财会职称考试刷题学习
android·人工智能·学习·app·软件·多功能
从零开始的代码生活_14 小时前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list
二炮手亮子14 小时前
记录AI学习之路Day13:小模型(AI生成)
学习
程序员小八77715 小时前
从 0 学习 MySQL 索引——7 大核心精讲
android·学习·mysql
渣渣灰飞16 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第六章:Redis 实现登录 Token
学习·mysql·缓存
渣渣灰飞16 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第五章:缓存穿透、缓存击穿、缓存雪崩
学习·mysql·缓存
念何架构之路16 小时前
Docker 容器状态机 学习
java·学习·docker
你有我备注吗16 小时前
SQL学习之查询
java·sql·学习
从零开始的代码生活_16 小时前
C++ stack、queue 与 priority_queue:容器适配器原理与实战
开发语言·c++·后端·学习·算法
铅笔侠_小龙虾16 小时前
Rust 学习(6)-所有权规则、移动语义、Clone 与 Copy
python·学习·rust