免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2474 | 回复: 5
打印 上一主题 下一主题

[系统管理] 如何替换掉系统默认的Java [复制链接]

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-31 14:13 |只看该作者 |倒序浏览
        系统Fedora 23 x86_64 xfce4.12

        ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Jan 27 12:01 /usr/bin/java -> /etc/alternatives/java

➜  ~  ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 71 Jan 27 12:01 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/java
➜  ~  ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/java

-rwxr-xr-x 1 root root 7336 Jan 20 22:00 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/java

       系统在执行任何依赖Java的应用的时候,都会调用系统默认的Java.比如IDEA/Eclipse , 启动时,在task里都会有两个java在运行.
     如果是在shell里执行/opt/ideaIC/bin/idea.sh,那么回执行自定义的Java (/opt/jdk1.8.0_72),不过在面板里执行.desktop文件,首先要调用系统默认的Java,所以才导致进程里有两个不同的Java.现在想知道,能不能把系统级的java,设置为我的字设定的/opt/jdk1.8.0_72 ?

        

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
2 [报告]
发表于 2016-01-31 15:18 |只看该作者
yum卸了他再装jdk官方版

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
3 [报告]
发表于 2016-01-31 17:49 |只看该作者
回复 2# 剑魂箫心


    不管用的.而且Eclipse/IDEA启动要去找/usr/bin/java.光做链接只能暂时解决问题.其他的需要OpenJDK的项目,还是要装OpenJDK.

    我的意思是,告诉系统,我已经有JDK了,目录就在/opt/jdk1.8.0_72.不需要openjdk.需要java的,去$JAVA_HOME找...


    update-alternatives 只发现系统里有openjdk.我编辑了/etc/profile,添加$JAVA_HOME也不管用...

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
4 [报告]
发表于 2016-01-31 22:14 |只看该作者
回复 3# SeAL80s


    JRE_HOME、PATH、CLASSPATH这些变量都正确设置了吗

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
5 [报告]
发表于 2016-01-31 22:35 |只看该作者
回复 4# 剑魂箫心


    都设置了.但是觉得通知系统/opt/jdk 在哪好像不止这几个变量,还有其他的操作不清楚.

    update-alternatives --list | grep java
java_sdk_openjdk        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64
jaxp_parser_impl        auto        /usr/share/java/xerces-j2.jar
java        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/java
java_sdk_1.8.0_openjdk        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64
jre_1.8.0        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre
libjavaplugin.so.x86_64        auto        /usr/lib64/IcedTeaPlugin.so
jaxp_transform_impl        auto        /usr/share/java/xalan-j2.jar
java_sdk_1.8.0        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64
javac        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/bin/javac
jre_openjdk        auto        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre
➜  
有这么多变量.有时间我去找找Fedora对于OpenJDK的设置吧,看看Linux是如何支持Java的,或许能有点眉目.
Linux支持官方的JDK,而且我根本不用OpenJDK .系统里本来有自己用的官方JDK,其他依赖工具还要装一堆openjdk,太不爽了...不过,这个不算大问题,有时间慢慢找吧...
多谢!

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
6 [报告]
发表于 2016-01-31 23:12 |只看该作者
回复 5# SeAL80s


    fedoraproject.org/wiki/Java#Java_Runtime_Environments_.28JRE.29

    linuxbsdos.com/2014/09/19/how-to-install-oracle-jre-on-fedora-20-and-use-alternatives-to-switch-between-it-and-openjdk

    但是还是没解释,其他软件如何用用户自定义的JAVA.

    如果sudo dnf remove openjdk,还是会卸载有相关依赖的软件.

    vim /etc/java/java.conf

    发现几个系统级别的变量和路径,也改了

    # System-wide Java configuration file  -*- sh -*-

# Location of jar files on the system
JAVA_LIBDIR=/usr/share/java

# Location of arch-specific jar files on the system
JNI_LIBDIR=/usr/lib/java

# Root of all JVM installations
#JVM_ROOT=/usr/lib/jvm

JVM_ROOT=/opt/jdk1.8.0_72
# You can define a system-wide JVM root here if you're not using the
# default one.
#
# If you have a base JRE package installed
# (e.g. java-1.6.0-openjdk):
JAVA_HOME=$JVM_ROOT/jre
#
# If you have a devel JDK package installed
# (e.g. java-1.6.0-openjdk-devel):
#JAVA_HOME=$JVM_ROOT/java

JAVA_HOME=$JVM_ROOT/bin/java
# Options to pass to the java interpreter
#JAVACMD_OPTS=

# You can disable ABRT Java Connector by setting JAVA_ABRT to "off".
# See: https://github.com/jfilak/abrt-java-connector/
JAVA_ABRT=off

另外
~  alternatives --display java
java - status is manual.
link currently points to /opt/jdk1.8.0_72/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/java - family java-1.8.0-openjdk priority 1800071
slave jjs: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/jjs
slave keytool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/keytool
slave orbd: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/orbd
slave pack200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/pack200
slave policytool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/policytool
slave rmid: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/rmid
slave rmiregistry: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/rmiregistry
slave servertool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/servertool
slave tnameserv: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/tnameserv
slave unpack200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre/bin/unpack200
slave jre_exports: /usr/lib/jvm-exports/jre-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64
slave jre: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64/jre
slave java.1.gz: /usr/share/man/man1/java-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave jjs.1.gz: /usr/share/man/man1/jjs-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave keytool.1.gz: /usr/share/man/man1/keytool-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave orbd.1.gz: /usr/share/man/man1/orbd-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave pack200.1.gz: /usr/share/man/man1/pack200-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave policytool.1.gz: /usr/share/man/man1/policytool-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave rmid.1.gz: /usr/share/man/man1/rmid-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave servertool.1.gz: /usr/share/man/man1/servertool-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
slave unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.8.0-openjdk-1.8.0.71-1.b15.fc23.x86_64.1.gz
/opt/jdk1.8.0_72/bin/java - priority 18000072
slave jjs: (null)
slave keytool: (null)
slave orbd: (null)
slave pack200: (null)
slave policytool: (null)
slave rmid: (null)
slave rmiregistry: (null)
slave servertool: (null)
slave tnameserv: (null)
slave unpack200: (null)
slave jre_exports: (null)
slave jre: (null)
slave java.1.gz: (null)
slave jjs.1.gz: (null)
slave keytool.1.gz: (null)
slave orbd.1.gz: (null)
slave pack200.1.gz: (null)
slave policytool.1.gz: (null)
slave rmid.1.gz: (null)
slave rmiregistry.1.gz: (null)
slave servertool.1.gz: (null)
slave tnameserv.1.gz: (null)
slave unpack200.1.gz: (null)
Current `best' version is /opt/jdk1.8.0_72/bin/java.
看到输出了,还有些null需要解决

改了/etc/可能是要重启才能生效吧.今天有点累了,思路有点模糊了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP