V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sjmcefc2
V2EX  ›  Java

求教一下 Java 到底是个什么怪物呢? jre, jdk, Java se 等等, 8, 9, 10, 11 , oralce Java openjdk

  •  
  •   sjmcefc2 · 2019-04-29 15:19:39 +08:00 · 6607 次点击
    这是一个创建于 2036 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好像差别很大的样子。oracle java 和 openjdk 好像安装的时候差别很大。 apt-get install default-jre 这个 openjdk 总是过不了某些依赖。 add-apt-repository ppa:webupd8team/java 这个团队 的又总是不能顺利 update

    想手动安装吧,oracle 网站上那个链接是一个借一个,怎么安装并配置好 java8 呢?

    38 条回复    2019-05-05 02:09:22 +08:00
    wqzjk393
        1
    wqzjk393  
       2019-04-29 15:20:54 +08:00
    一个 intellij 就解决了。。
    sjmcefc2
        2
    sjmcefc2  
    OP
       2019-04-29 15:23:31 +08:00
    debian 下配置开发环境。。。。
    jimrok
        3
    jimrok  
       2019-04-29 15:56:46 +08:00
    @sjmcefc2 商用版本是 oracle 的,但超过服务期就不会有更新,除非买商业服务。如果不想出钱,可以选择阿里,亚马逊维护的 openJDK 版本,他们负责修复一些 bug。jdk 是带编译器,如果你要编译代码就下载 jdk,否则 jre 这种运行环境就可以。8 版本目前用的比较广,后续的版本比较新,建议用 LTS 的版本。
    shylockhg
        4
    shylockhg  
       2019-04-29 16:00:00 +08:00
    docker run -it java
    baozijun
        5
    baozijun  
       2019-04-29 16:02:16 +08:00
    都可以,随便找个 java8 安装就好
    sjmcefc2
        6
    sjmcefc2  
    OP
       2019-04-29 16:45:39 +08:00
    @jimrok 感谢提示。openjdk 在装的时候总是有点问题,javah 之类的总是没有在对的路径里面。感觉很复杂的体系。

    @shylockhg docker 是方便,可是我不是只用 java 啊,其实用 java 也是别的服务。那么一个 java 容器怎么和另一个依赖 java 的容器融合呢
    sjmcefc2
        7
    sjmcefc2  
    OP
       2019-04-29 16:47:00 +08:00
    @baozijun 随便不起来。。。。。
    xdlucky
        8
    xdlucky  
       2019-04-29 16:48:09 +08:00 via iPad
    jre=Java runtime error
    Trim21
        9
    Trim21  
       2019-04-29 16:48:31 +08:00
    @sjmcefc2 按理说一个 docker 应该跑一个进程,所以如果有好几个进行应该用多个 docker 容器一起跑。比如用 docker-compose 来编排多个容器。
    chocotan
        10
    chocotan  
       2019-04-29 16:52:58 +08:00
    过不了依赖是你自己电脑的问题
    我安装各种软件都经常有有依赖不对的情况
    没觉得哪个链接看不懂,从点进 oracle 网站开始,鼠标一共只要点三次就能下下来 jdk8
    sjmcefc2
        11
    sjmcefc2  
    OP
       2019-04-29 17:00:12 +08:00
    @Trim21 这方面有什么编排的经验?我学习一下去。现在是安装 r 的环境,有一个包 xlsx 需要 rjava,rjava 需要 java 环境。
    oliver0909
        12
    oliver0909  
       2019-04-29 17:09:33 +08:00
    用 idea,让 IDE 帮你解决这些问题
    guili618
        13
    guili618  
       2019-04-29 17:18:03 +08:00
    ppa:webupd8team/java 因为 java 最新的协议,貌似已经不提供支持了
    sjmcefc2
        14
    sjmcefc2  
    OP
       2019-04-29 17:19:45 +08:00
    那有什么办法安装>?rpm 自己装?
    @guili618
    jason19659
        15
    jason19659  
       2019-04-29 17:41:55 +08:00
    官网下载,配置环境变量。
    sjmcefc2
        16
    sjmcefc2  
    OP
       2019-04-29 18:43:10 +08:00
    @jason19659 最完整正确的环境变量有模板吗?
    sagaxu
        17
    sagaxu  
       2019-04-29 18:56:28 +08:00 via Android
    apt-get install openjdk-8-jdk
    sjmcefc2
        18
    sjmcefc2  
    OP
       2019-04-29 19:01:29 +08:00
    @sagaxu 不好意思,这个 openjdk-8-jdk 貌似缺少一些东西,导致一直无法正确加载
    1.apt-get install gnupg
    2.apt install software-properties-common
    3.add-apt-repository ppa:webupd8team/java
    4.apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C2518248EEA14886
    5.apt update
    6. apt install oracle-java8-installer 不成功。找不到这个。
    7.javac -version
    8. apt-get install oracle-java8-set-default

    看似没那么简单哈
    sjmcefc2
        19
    sjmcefc2  
    OP
       2019-04-29 19:02:31 +08:00
    sagaxu
        20
    sagaxu  
       2019-04-29 19:04:00 +08:00 via Android
    @sjmcefc2 1,2,3,4 这 4 步都不需要,6,7,8 也不要

    apt-get update
    apt-get install openjdk-8-jdk

    这就是全部了
    sjmcefc2
        21
    sjmcefc2  
    OP
       2019-04-29 19:13:04 +08:00
    @sagaxu 能请教一下环境变量的配置?
    sagaxu
        22
    sagaxu  
       2019-04-29 19:16:05 +08:00 via Android
    @sjmcefc2 一般不需要配置任何环境变量,个别应用需要配 JAVA_HOME。
    Heanes
        23
    Heanes  
       2019-04-29 19:19:39 +08:00   ❤️ 3
    与其遇到问题在网上问怎么解决,花费大量时间,不如前期做好功课,花上一天半天时间了解下 java 发展,搜索下你不了解的词汇的含义,计算机词汇很多缩写,搜索出缩写词汇的全称就会明白很多。网上请教这个请教那个,等的时间恐怕比自己搜索答案更慢
    mritd
        24
    mritd  
       2019-04-29 19:29:43 +08:00 via iPhone
    自己查一下 openjdk 和 oraclejdk 区别,还有,既然用 linux 你应该清楚大部分软件都是 解压到目录配置个环境变量的问题
    guzzhao
        25
    guzzhao  
       2019-04-29 19:57:46 +08:00
    都会 linux 了,jdk 不会安装说不过去吧..
    DarrenLuo
        26
    DarrenLuo  
       2019-04-29 20:53:42 +08:00 via Android
    试一下 sdkman 来配置环境吧
    janus77
        27
    janus77  
       2019-04-29 20:57:57 +08:00
    jdk 可以理解为整合的 sdk
    jre 就是 java 程序的运行环境
    所以 jdk=jre+一些其他的工具包
    所以 jdk 有很多种版本
    最主要的就是 openjdk 和 oraclejdk
    6789 这些就是版本号了,正常理解就行
    jason19659
        28
    jason19659  
       2019-04-29 21:41:14 +08:00
    @sjmcefc2 #15
    例:
    ```
    JAVA_HOME=/etc/jdk-11
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME
    export PATH
    export CLASSPATH
    ```
    astkaasa
        29
    astkaasa  
       2019-04-29 22:22:48 +08:00 via iPhone
    环境变量跟你安装什么版本和怎么安装都没关系,你自己随便下个压缩包解压到什么路径都一样用
    boris1993
        30
    boris1993  
       2019-04-29 22:44:15 +08:00 via Android
    JRE = Java Runtime Environment,运行 Java 程序需要的环境
    JDK = Java Development Kit,Java 开发套件,包含开发和运行所需的库
    JVM = Java 虚拟机,与其对应的有一套标准化的规范

    Oracle JDK 为 Oracle 出品的商业的 JDK
    OpenJDK 是社区根据 JVM 规范所定制的自由开放的 JDK

    8,9,10,11 是版本号,其中 8 和 11 是长期支持(LTS)版本
    orm
        31
    orm  
       2019-04-29 22:52:22 +08:00
    https://www.azul.com/downloads/zulu/
    给你一个由 azul systems 公司的 openjdk,redhat 系的 RPM 包,或者 yum 方式安装; debian 系的 deb 包,或者 apt 方式安装,另外 redhat 与 debian 用包管理器安装的,是不用配置环境变量,如果安装多个 openjdk 版本,可以使用 sudo update-alternatives --config java 进行切换 jdk 版本
    passerbytiny
        32
    passerbytiny  
       2019-04-29 23:12:59 +08:00
    Java 并不是一个能快速入门的技术。当然 apt-get 安装不了是 Ubuntu 的锅。至于 Openjdk 那复杂的命名和依赖,是 Openjdk 最初的提供者—— Oracle ——的锅,我这个十年 Java 不靠 Google 也搞不明白。在 Window 上 Oracle 的锅更扯淡,PATH 都弄不好。
    sjmcefc2
        33
    sjmcefc2  
    OP
       2019-04-30 07:34:28 +08:00
    @jason19659 非常感谢。
    @boris1993 谢谢指点。

    @orm 这个好像很好的样子。
    @passerbytiny 觉得 java 是个怪兽啊

    另外,发现是因为 source 没有生效,不知道为什么?
    重启完成,好了。真实奇怪的。
    觉得还是朝着 docker compose 方面走比较好。
    wc951
        34
    wc951  
       2019-04-30 08:16:48 +08:00 via Android
    先随便找个 java8 开始写 demo,初级使用根本用不到那些区别
    daodao116
        35
    daodao116  
       2019-04-30 09:10:50 +08:00
    不同版本的 jdk,实际上是一套规范,各个公司有不同的实现而已,对于学习来说,就上 oracle 下个 1.8 先玩起来好了。
    gongxufan
        36
    gongxufan  
       2019-04-30 13:58:15 +08:00
    关键看项目线上环境是哪个版本
    yejianmail
        37
    yejianmail  
       2019-05-01 08:20:59 +08:00 via Android
    反正我 win 和 linux 下全是不安装只解压配置下环境就可以了
    wiix
        38
    wiix  
       2019-05-05 02:09:22 +08:00
    @yejianmail +1
    配个 JAVA_HOME,再把 bin 加到 path 里。
    两步足够了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:38 · PVG 08:38 · LAX 16:38 · JFK 19:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.