一、linux下jps报command not found

  前言:在网上有好多说是以 root 身份 vi /etc/profile,然后在下面加一行 export PATH="usr/java/jdk160_05/bin:$PATH"(其中 jdk160_05 是你的安装目录,依你自己的安装情况所决定),然后 source /etc/profile 即可解决。

  我觉得这是当你自己安装 jdk 后 jps 命令不好使时可以这样解决,但是经过我试验你自己安装 jdk 成功后(如:在解压 jdk-8u91-linux-x64.tar.gz 后的 bin 目录下有 jps 可执行文件)一般 jps 命令就已经好使了。

  所以说一般输入 jps 后报 -bash: jps: command not found 都是使用 Linux 自带的 jdk 时,下面以 RedHat6.6(Centos也适用)的解决方法为例:

[root@hui-003 ~]# yum list | grep jdk-devel
java-1.6.0-openjdk-devel.x86_64        1:1.6.0.0-11.1.13.4.el6       rhel-source
java-1.7.0-openjdk-devel.x86_64        1:1.7.0.65-2.5.1.2.el6_5      rhel-source
java-1.8.0-openjdk-devel.x86_64        1.8.0.20-3.b26.el6            rhel-source
[root@hui-003 ~]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
#(查看了一下我jdk版本是jdk1.7.0,于是就安装java-1.7.0-openjdk-devel.x86_64,后来经试验安装java-1.6.0-openjdk-devel.x86_64和java-1.8.0-openjdk-devel.x86_64后jps命令倒也能正常使用)
[root@hui-003 ~]# yum -y install java-1.7.0-openjdk-devel.x86_64

后来在一次实验中出现了这个警告:
在这里插入图片描述
  据网上资料说这是由于 yum 安装了旧版本的 GPG keys 造成的。 解决办法就是运行以下命令:rpm --import /etc/pki/rpm-gpg/RPM*

还有可能你会报这个错:

Loaded plugins: fastestmirror, refresh-packagekit, security
Existing lock /var/run/yum.pid: another copy is running as pid 2388.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  56 M RSS (364 MB VSZ)
    Started: Thu Aug 31 09:46:18 2017 - 13:20 ago
    State  : Sleeping, pid: 2388
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  56 M RSS (364 MB VSZ)
    Started: Thu Aug 31 09:46:18 2017 - 13:22 ago
    State  : Sleeping, pid: 2388
。。。。。。。。。。。。不断循环

  可能是系统自动升级正在运行,yum在锁定状态中。

  可能你会想到用kill -9 2388将它杀掉,但可惜并不好使。。。那应该咋么办呢?那么你可以通过强制关掉yum进程:rm -f /var/run/yum.pid
 

二、查看Linux自带的jdk安装路径:

  1. 使用 $JAVA_HOME的话能定位 JDK 的安装路径的前提是配置了环境变量 $JAVA_HOME,否则如下所示,根本定位不到JDK的安装路径:
    在这里插入图片描述
  2. whereis命令
[root@hui-002 jvm]# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java.1.gz
  1. which java也是如此,which java定位到的是 java 程序的执行路径。
[root@hui-002 ~]# which java
/usr/bin/java
  1. 寻找 Java 的默认安装路径
    在这里插入图片描述
[root@hui-002 ~]# cd /usr/lib/jvm
[root@hui-002 jvm]# ls
java  java-1.6.0  java-1.6.0-openjdk-1.6.0.0.x86_64  java-1.6.0-openjdk.x86_64  java-1.7.0-openjdk-1.7.0.65.x86_64  java-openjdk  jre  jre-1.6.0  jre-1.6.0-openjdk.x86_64  jre-1.7.0  jre-1.7.0-openjdk.x86_64  jre-openjdk

三、解决linux安装的jdk版本与java -version版本显示不一致问题(下面以RedHat5.5为例):

说明:我明明已经将 jdk-7u25-linux-i586.tar.gz 解压并已经配好了环境变量(一般配好了就能正常使用了哈)但又一次执行Java -version 后显示的还是 Linux 原来自带的旧版本

解决步骤:

[root@h71 soft]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-48)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@h71 soft]# which java
/usr/bin/java

[root@h71 soft]# mv /usr/bin/java /usr/jdk1.7.0_25/
# 或者(后面的目录为你自己jdk的安装目录):
[root@192 hadoop]# mv /usr/bin/java /opt/java/jdk1.8.0_91

[root@h71 soft]# ln -s /usr/jdk1.7.0_25/bin/java /usr/bin/java
[root@h71 soft]# ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 25 May  5 16:13 /usr/bin/java -> /usr/jdk1.7.0_25/bin/java
[root@h71 soft]# java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode)

注意:执行ln -s命令进行软链接设置的时候可能报错说文件已经存在。可以增加 f 参数覆盖之前的
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐