HIT-软件构造-lab5-Tips

实验要求使用一些命令行,如jstat、jmap等,看似只是简单的输入命令行即可,但是亲自实践的过程中出现了很多没有见过的问题在此总结,为大家提供参考。

Tip1:在cmd中输入对应命令行时你会发现这样的情况:
“jstat”不是内部或外部命令,也不是可运行的程序

分析:很明显是环境配置的问题。

解决方法(两种):
1、jstat等是JDK自带的工具,位于java的JDK的bin目录下,故第一种解决方法是,在本地找到java目录(一般在某个盘的 ProgramFiles 文件夹中,可搜索查找jstat),在cmd中cd 进入java的bin目录下,再用jstat等。:HIT-软件构造-lab5-Tips
2、将上述bin目录的地址,添加至环境变量:

第一步:找到环境变量:
我的电脑 -> 属性 -> 高级系统设置 -> 环境变量

第二步:添加环境变量
新建环境变量JAVA_HOME 设为 bin 文件夹的地址如:C:\Program Files\Java\jdk-11.0.2,然后修改CLASSPATH变量,在原有值前面加上“ .;%JAVA_HOME%\lib\dt.jar; ”(如果CLASSPATH不存在,则新建一个),然后保存,这样环境就配置好啦。
HIT-软件构造-lab5-Tips
即可直接在cmd中输入对应指令 :

HIT-软件构造-lab5-Tips
ps:如果采用方法1,则后面的指令,也需要进入bin目录下才能使用

Tip2:接下来到jmap指令的时候,你可能会发现这样的问题:
首先jmap -heap 指令报错:
HIT-软件构造-lab5-Tips
分析:由于jdk9及以后的版本不再使用jmap -heap命令来查询heap内存情况,需要用jhsdb jmap --heap --pid来替代(我的JDK版本为11,可在cmd中java -version 查看所用jdk版本)

但是在更正了指令之后,你可能又会遇到这样的错误:
HIT-软件构造-lab5-Tips分析:通过提示可以看出是版本的问题。于是我某度提示,发现类似的情况:
链接:http://www.hyhblog.cn/tag/技术小问题/
结果,上面的链接中是配置环境的问题,也就是用tip1中的第2种方法解决。
然而我之前已经配置好了环境,所以并不适用。后来,还是上述链接的方法中给了我解决思路。
问题解决:
因为用eclipse编译运行程序,所以,可能是eclipse中用的jdk版本与环境配置的jdk版本不一致。(我的还有JDK8)。
第一步:所以可以在eclipse中查看一下eclipse用的是哪个版本的jdk。
方法:eclipse ->Window -> Preferences -> Java -> Compilor
HIT-软件构造-lab5-Tips

果然!可以看到我的eclipse的jdpk版本为8,接下来调整成11就好了。操作:
先改成11:

HIT-软件构造-lab5-Tips
然后add路径(jdk11的地址):

HIT-软件构造-lab5-Tips
然后apply and close 就好啦。

然后就可以直接输入指令啦:
HIT-软件构造-lab5-Tips