deepin Linux oracal jdk替换openjdk Java javac Scala root 不生效

jdk Scala 以及 groovy 下载安装不再演示
由于 deepin 的权限设计不贴近用户,导致很多操作变得繁琐

$:sudo su
[sudo] user 的密码:
root$:javac
bash: javac: 未找到命令
root$:scala
bash: scala: 未找到命令
root$:code
You are trying to start vscode as a super user which is not recommended. If you really want to, you 
must specify an alternate user data directory using the --user-data-dir argument.

如上,看到javac Scala 都是找不到命令,以及vscode必须要求在alternatives中进行配置才允许使用root用户启动,然而开发过程中很多操作和框架的启动使用都是需要高权限的,在尝试在profile和.brashrc上做各种操作后发现无用,每次必须先source一下profile才会切换到自定义的jdk环境上,问题出在了usr/bin/中。
解决方法,手动在/etc/alternatives 上将所需命令配好,由于需要到优化等各各种问题所以添加了不止java javac命令
操作如下

sudo update-alternatives --install /usr/bin/javac javac  /opt/java/jdk1.8.0_181/bin/javac  1810
sudo update-alternatives --install /usr/bin/java  java  /opt/java/jdk1.8.0_181/bin/java  1810
sudo update-alternatives --install /usr/bin/jar jar /opt/java/jdk1.8.0_181/bin/jar 1810   
sudo update-alternatives --install /usr/bin/javah javah /opt/java/jdk1.8.0_181/bin/javah 1810   
sudo update-alternatives --install /usr/bin/javap javap /opt/java/jdk1.8.0_181/bin/javap 1810
sudo update-alternatives --install /usr/bin/jps jps /opt/java/jdk1.8.0_181/bin/jps 1810
sudo update-alternatives --install /usr/bin/jmap jmap /opt/java/jdk1.8.0_181/bin/jmap 1810
sudo update-alternatives --install /usr/bin/jcmd jcmd /opt/java/jdk1.8.0_181/bin/jcmd 1810
sudo update-alternatives --install /usr/bin/jstat jstat /opt/java/jdk1.8.0_181/bin/jstat 1810
sudo update-alternatives --install /usr/bin/jconsole jconsole /opt/java/jdk1.8.0_181/bin/jconsole 1810
sudo update-alternatives --install /usr/bin/jcontrol jcontrol /opt/java/jdk1.8.0_181/bin/jcontrol 1810

sudo update-alternatives --install /usr/bin/scala scala /opt/scala/scala-2.11.12/bin/scala 211
sudo update-alternatives --install /usr/bin/scalac scalac /opt/scala/scala-2.11.12/bin/scalac 211
sudo update-alternatives --install /usr/bin/scalap scalap /opt/scala/scala-2.11.12/bin/scalap 211
sudo update-alternatives --install /usr/bin/scaladoc scaladoc /opt/scala/scala-2.11.12/bin/scaladoc 211
sudo update-alternatives --install /usr/bin/fsc fsc /opt/scala/scala-2.11.12/bin/fsc 211

为系统添加上自己所需要的命令,后面的数字是我随便定义的,本人并没有查清楚数字定义成什么有何意义

如果有的命令之前已经被其他的软件注册在系统上那么需要单独配置优先级
例:给java定义配置

root$:update-alternatives --config java
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                          优先级  状态
------------------------------------------------------------
  0            /opt/java/jdk1.8.0_181/bin/java                  1810      自动模式
* 1            /opt/java/jdk1.8.0_181/bin/java                  1810      手动模式
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:1

选择自己需要的路径为优先即可

如果只有一个路径则系统会提示不需要配置优先级

 root$:update-alternatives --config javac
链接组 javac (提供 /usr/bin/javac)中只有一个候选项:/opt/java/jdk1.8.0_181/bin/javac
无需配置。

你可能感兴趣的:(deepin Linux oracal jdk替换openjdk Java javac Scala root 不生效)