java 虚拟机 JDK jps,jconsole等工具在windows下无输出的解决方法

最近在深入JVM,这就不得不用到JDK的免费工具如jps,jsonsole等等.....

前提当然是安装好JDK和配置好java在windows下的环境变量。配置环境变量这里就不说了,百度一抓一大把,随便打开一个看就可以了。

好了,准备就绪后就cmd执行jps。奇怪的事情发生了。就算我本地运行着activemq和一些web程序,jps也完全无视,根本就不给我输出任何东西,没有任何错误,连jps本身的进程也不给我列出来。

我开始排查这里面的原因,第一个JDK版本的问题?非也,在JDK版本是1.4的linux上面也可以顺利执行。我这个好歹还是JDK1.6,但是听说JDK1.6有个别版本存需要手动打开JMX管理,好吧,那个我目前还不大了解,那我就直接不用JDK1.6了,干脆上oracle上面下了个x86的JDK1.7,因为我的系统是32位的windows xp。

我把环境变量的JAVA_HOME备份了一下,重新指定了安装好的JDK1.7,问题依旧没有得到解决。难不成是环境变量的问题?我java -version了一下,是我最新配置的1.7版本。然后我继续将JDK lib下的tools.jar重命名了下。然后jps。这时候给我提示说找不到程序执行的主类。证明系统的环境变量是设置对的。起码jps的时候他知道去tools.jar上面去找。

接着我大致了解了下jps这个工具的工作原理,它跟jconsole是一样的。都是需要在环境变量的TMP目录里面去找一个名字叫hsperfdata_{当前登录账户}的文件夹,读取存储在里面的进程信息。要是嫌麻烦,可以直接在开始运行里面输入%TMP%,这样就能定位到tmp文件夹下了。这个时候问题貌似浮出水面了。那个文件夹下根本没有hsperfdata_***的文件夹。为什么会没有呢?

我在google上面查了很久,终于在一篇国外的帖子上看到系统盘是FAT32的话是无法创建hsperfdata_***文件夹的,至于为什么,那上面也没说。我只是想用jps工具,其他的无关紧要,我一直都没太在意我的系统盘是什么格式的,原来还真是FAT32的。。。。。。

朋友们,要是你们有心思看完我这么多废话之后,我抱歉的给你说一句,问题恰恰就是这里。有心的朋友们大概已经知道怎么样去解决了。最笨的方法是重装系统,把系统盘用NTFS格式化了。

我先想,我的TMP目录是在FAT32下面,要是将JDK也装到那个系统盘上面会不会就好了呢?答案是否定了,要是有人跟我有一样奇葩想法的人我用实际行动告诉你,不行的。
另外如果你想修改环境变量将TMP重新指定到NTFS的磁盘下面,也是不行的,只要操作系统盘是FAT32的都不行。
好吧。。。。。。正题来了。对于这个只需要这样解决。将系统盘用命令转换为NTFS格式。如下:
进入cmd,敲入此命令convert c: /FS:NTFS
重启下机器,成功。
要是提示说要输入磁盘卷标名称,就输入磁盘在“我的电脑”上面显示的名字即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值