楔子
情况是这样的,安装Linux虚拟机CentOS6.9之后,卸载了自带的JDK,然后重新配置了JDK8,今天使用yum安装一下软件,自动有安装了JDK。
然后就卸载了自动安装的JDK,执行java报错,但是执行javac 没问题
卸载自带JDK
#!/bin/bash
# 查询自带的JDK
# 问题1:次处是不是使用 rpm -qa | grep java 就会没问题,现在已经恢复,没法测试
# 问题2:网上有些人卸载自JDK 使用的是 rpm -qa | grep gcj ,是不是直接使用此命令就不会出现此问题
for eme in `rpm -qa |grep jdk`
do
echo $eme
rpm -e --nodeps $eme #执行卸载命令
done
问题解决
##### 安装的java位于 /usr/local/soft/jdk18 下面一行自行修改自己的位置
1 :
[root@hadoop bin]# alternatives --install /usr/bin/java java /usr/local/soft/jdk18/bin/java 300
2 :
alternatives --config java
出现后选择 2
[root@hadoop bin]# java
Usage: gij [OPTION] ... CLASS [ARGS] ...
to invoke CLASS.main, or
gij -jar [OPTION] ... JARFILE [ARGS] ...
to execute a jar file
Try `gij --help' for more information.
[root@hadoop bin]# echo $JAVA_HOME
/usr/local/soft/jdk18
##### 安装的java位于 /usr/local/soft/jdk18 下面一行自行修改自己的位置
[root@hadoop bin]# alternatives --install /usr/bin/java java /usr/local/soft/jdk18/bin/java 300
[root@hadoop bin]# JAVA
-bash: JAVA: command not found
[root@hadoop bin]# java
Usage: gij [OPTION] ... CLASS [ARGS] ...
to invoke CLASS.main, or
gij -jar [OPTION] ... JARFILE [ARGS] ...
to execute a jar file
Try `gij --help' for more information.
[root@hadoop bin]# alternatives --config java
共有 2 个程序提供“java”。
选择 命令
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
2 /usr/local/soft/jdk18/bin/java
按 Enter 来保存当前选择[+],或键入选择号码:2
[root@hadoop bin]# java
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server.
-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 : 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
-verbose:[class|gc|jni]
启用详细输出
-version 输出产品版本并退出
-version:<值>
警告: 此功能已过时, 将在
未来发行版中删除。
需要指定的版本才能运行
-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已过时, 将在
未来发行版中删除。
在版本搜索中包括/排除用户专用 JRE
-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
按指定的粒度启用断言
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]