Linux小白也能秒懂!轻松查看Linux系统装了哪些JDK版本

直接说Linux看JDK版本就这几招:
1 . 看当前JDK版本: java-version javac-version
2 . 列所有装好的: dpkg --list | grep java(Debian系) rpm -qa | grep java(CentOS系)
3 . 切换版本: sudo update-alternatives --config java 选编号换JRE
4 . 检查环境变量: echo $JAVA_HOME 没路径手动加: export JAVA_HOME=/usr/jdk路径 export PATH=$JAVA_HOME/bin:$PATH source ~/.bashrc
5 . 管理工具版本: sudo update-alternatives --config keytool
6 . 下新版本: Oracle官网(注意协议) OpenJDK用包管理: sudo apt install openjdk-1 7 -jdk
7 . 升级: Debian/Ubuntu: sudo apt upgrade openjdk-1 7 -jdk CentOS/RHEL: sudo yum update java-1 7 -openjdk-devel
先这样

在 Linux 上使用 jps 命令检查 Java 进程 | Linux 中国

说白了,在Linux上使用jps命令检查Java进程其实很简单。
先说最重要的,jps是OpenJDK提供的一个实用工具,用于扫描并显示当前系统上所有运行的JVM实例。
比如,去年我们跑的那个项目,使用jps命令就能轻松找到所有Java进程的PID和类名或Jar文件名。

另外一点,jps命令的-v选项非常有用,它能提供与ps命令类似的详细输出,包括Java进程的启动参数等信息。
比如,我们之前的项目大概3 000量级,使用-v选项可以看到每个进程的详细启动参数。

我一开始也以为jps命令可能是个试验性工具,后来发现不对,它实际上是一个稳定且实用的工具。
等等,还有个事,运行jps命令可能需要相应的权限,尤其是在查看其他用户启动的Java进程时。

最后提醒一个容易踩的坑,虽然jps的手册页指出此命令是试验性且不受支持的,但它依然非常实用。
兼容性方面,jps命令是OpenJDK提供的,所以使用其他Java发行版时,可能需要确保该发行版也包含此工具。

我觉得值得试试,如果你还没有使用过jps命令,或者想要更深入地了解Java进程,不妨现在就试试这个命令,看看它能给你带来哪些便利。

在 Linux 上使用 jps 命令检查 Java 进程 | Linux 中国

说实话,我当年刚接触Linux那会儿,对进程这东西真是搞不太懂。
但jps命令确实帮了我大忙,特别是个新手。
记得有一次我写了个小Java程序,跑起来后想看看进程号,就顺手敲了jps,屏幕上立马就列出几个数字和对应的类名,简直不要太方便。

有意思的是,jps是OpenJDK自带的工具,所以不管你用的是哪个版本的OpenJDK,基本都能用。
不过这玩意儿在手册页里被标成"试验性且不受支持",当时我看着也懵——怎么这么重要的命令反而说不靠谱呢?后来想想,可能太阳系运行得挺好的,但说明书非说这是试验品。

我试过用jps -v看更详细的输出,确实跟ps命令有点像,能看到更多参数。
但说实话,我平时用jps主要就是看进程ID和类名/文件名,其他选项用得不多。
比如上次调试一个Spring Boot应用,jps直接让我看到那个PID对应的是SpringApplication,省得我再去ps aux | grep java瞎找了。

说到这里,不得不提ps命令。
这可是Linux的祖传神技,ps aux这个组合拳打出来,能把你系统上所有进程都摆得明明白白。
我有个习惯,看Java进程时,会直接ps aux | grep java,这样过滤得干净。
当然,如果系统上Java进程不多,jps更快。

还有procps-ng这个包,我碰见过一次系统用不上jps的情况,后来发现是这包出了问题。
不过说实话,我平时基本不用这个,毕竟jps够我用,而且写起来也简单。
就像你说的,系统后台那些守护进程,比如NTP服务、日志轮转这些,用ps也能查到,但没必要专门学procps-ng。

说到底,掌握这些命令真的很实用。
毕竟Java现在还是主流,哪怕你只是做Python开发,有时候也得跟Java进程打交道,比如看某个微服务的日志。
我当时维护一个混合系统,Python和Java进程一大堆,jps帮了我不少忙。
虽然现在有更高级的监控工具,但快速定位Java进程这种基础操作,jps还是得会。