做个小调查,有多少公司已经迁移到 JDK11 了?或者使用 OpenJDK? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
afirefish
V2EX    Java

做个小调查,有多少公司已经迁移到 JDK11 了?或者使用 OpenJDK?

  •  
  •   afirefish 2020-03-05 11:15:12 +08:00 11351 次点击
    这是一个创建于 2051 天前的主题,其中的信息可能已经有所发展或是发生改变。
    66 条回复    200-03-29 18:48:10 +08:00
    afirefish
        1
    afirefish  
    OP
       2020-03-05 11:16:20 +08:00
    或者使用 OpenJDK ?
    niuroumian
        2
    niuroumian  
       2020-03-05 11:18:00 +08:00 via iPhone   1
    zulujdk
    afirefish
        3
    afirefish  
    OP
       2020-03-05 11:22:01 +08:00
    @niuroumian 请教一下,和使用 OracleJDK 有任何区别吗?我看官网的描述是提供高度一致性。
    aaaafei
        4
    aaaafei  
       2020-03-05 11:32:39 +08:00
    jdk9 都还没升。感觉 8 之后的 stream 就能很好的满足我了。不清楚后面有什么新的特性。
    luckyrayyy
        5
    luckyrayyy  
       2020-03-05 11:35:06 +08:00
    我们有无关紧要的小项目用的是 11...上量的还都是 8
    hoichallenger
        6
    hoichallenger  
       2020-03-05 11:35:47 +08:00 via Android
    目前在用 adopt 的 11,还没出现过什么问题
    wupher
        7
    wupher  
       2020-03-05 11:42:41 +08:00
    自用的是 11,单位生产用的还是 8。

    貌似没有大问题。小的地方,有些额外的依赖类,需要手工添加在 pom 中。别的没大区别。
    xi_lin
        8
    xi_lin  
       2020-03-05 12:14:07 +08:00
    OpenJDK 性能差些
    hantsy
        9
    hantsy  
       2020-03-05 12:22:48 +08:00
    一直用 AdoptOpenJDK
    pzhdfy
        10
    pzhdfy  
       2020-03-05 12:28:19 +08:00
    JDK8 开发,加上 JDK11 兼容的代码(主要是 direct Bytebuffer 的 cleaner ),使用 jdk11 运行,G1 并行 full gc 感觉不错
    slyang5
        11
    slyang5  
       2020-03-05 12:30:13 +08:00
    @wupher 用上了 模块化了 ?
    sagaxu
        12
    sagaxu  
       2020-03-05 12:34:24 +08:00 via Android
    @xi_lin 8 之后性能一样了
    Zoro76
        13
    Zoro76  
       2020-03-05 12:40:54 +08:00
    还在用 jdk8
    Weixiao0725
        14
    Weixiao0725  
       2020-03-05 12:42:44 +08:00   2
    已经迁移到 Go 了。。
    laojin
        15
    laojin  
       2020-03-05 14:04:20 +08:00
    OpenJDK 8
    stlee
        16
    stlee  
       2020-03-05 14:27:47 +08:00
    还在用 8
    wupher
        17
    wupher  
       2020-03-05 14:51:59 +08:00
    自用项目,尚未使用模块化
    @slyang5
    rogerus
        18
    rogerus  
       2020-03-05 14:58:07 +08:00
    主要的生产系统还是 8。
    wysnylc
        19
    wysnylc  
       2020-03-05 15:05:42 +08:00   1
    8888888888888888
    Oktfolio
        20
    Oktfolio  
       2020-03-05 15:13:30 +08:00
    自用 Corretto 11
    yjxjn
        21
    yjxjn  
       2020-03-05 15:23:05 +08:00
    生产环境,1.8,部分老旧系统还在 1.6.
    自己自学 Java 还在用 8,够了。
    zzf2019
        22
    zzf2019  
       2020-03-05 15:28:25 +08:00
    openjdk 有些 jre 包没有,会让一些类报错,这是我项目经历过的血的教训
    GlobalNPC
        23
    GlobalNPC  
       2020-03-05 15:29:08 +08:00
    从 7 往 8 迁移中。。。WTF
    rb6221
        24
    rb6221  
       2020-03-05 15:30:26 +08:00
    jdk 稳定的很,如果不是为了新技术兼容和团队喜欢追升级,没人去升吧
    xiaowei0823
        25
    xiaowei0823  
       2020-03-05 16:00:19 +08:00
    openjdk version "1.8.0_242"
    OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
    OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)
    ming7435
        26
    ming7435  
       2020-03-05 16:32:38 +08:00
    1.8 能用 1 万年
    passerbytiny
        27
    passerbytiny  
       2020-03-05 16:42:36 +08:00
    不需要调查,看下 spring boot 用得哪个就行了,目前的稳定版还是 8 : https://github.com/spring-projects/spring-boot/blob/2.2.x/spring-boot-project/spring-boot-parent/pom.xml

    master 的构建工具换 Gradle 了,这个我还不知道哪里看 java 版本。当然这也说明要准备从 Maven 切换 Gradle 了。
    chenyu0532
        28
    chenyu0532  
       2020-03-05 16:43:16 +08:00
    偶数的不才是 LTS 么。。奇数的你们也用??
    nxforce
        29
    nxforce  
       2020-03-05 16:51:08 +08:00
    @chenyu0532 java11 也是 LTS 啊
    beyondex
        30
    beyondex  
       2020-03-05 16:56:18 +08:00
    查了一下,JDK 8 是 2012 年发布的?反正 Java 是服务端语言,升级也不困难,为何还有这么多停留在 8 的?
    geekvcn
        31
    geekvcn  
       2020-03-05 17:02:41 +08:00
    @beyondex 首先 JAVA 不是服务端语言,什么端都能跑,你这点就有严重问题,其次,就算 JAVA 是服务端语言,就是因为是服务端,稳定第一,升级才需要做收益计算,如果升级不能带来收益,反而可能会导致不确定问题,鬼才升级,都是新项目用新版本,服务器上的老项目没人愿意动
    stevenkang
        32
    stevenkang  
       2020-03-05 17:58:43 +08:00 via Android
    我司生产还在 1.6,准备今年升 1.8
    huntcool001
        33
    huntcool001  
       2020-03-05 18:03:10 +08:00
    JDK 11 G1 默认开启后性能会提升一些吧. 其他感觉没啥必要.
    vitoliu
        34
    vitoliu  
       2020-03-05 18:47:01 +08:00
    JDK8 的调优做到了么?如果没做到,升了 11 线上 GC 出问题了你去踩坑噢?
    yanyueio
        35
    yanyueio  
       2020-03-05 19:02:16 +08:00 via Android
    @zzf2019 和这位大佬一样,用 open jdk8,但很多 jre 类库没有,需要 maven 自己引入。生产开发都是 8,虽然我了解 9,11。不明白用 11 开发,用 8 部署的,新的 feature 旧的运行时环境怎么兼容的?如果没有用到新 feature 那倒不如直接选 8 呢?
    dbpe
        36
    dbpe  
       2020-03-05 20:01:52 +08:00
    j8 没调优...想升 j11
    BBCCBB
        37
    BBCCBB  
       2020-03-05 20:04:12 +08:00
    @pzhdfy jdk11 里 clean 有啥新方法吗..
    BLF2
        38
    BLF2  
       2020-03-05 21:45:31 +08:00
    用 11 开发,编译的时候可以使用 jdk8 标准编译,然后就可以在 jdk8 上运行了,我们旧系统环境是 jdk7,但开发都是用 jdk8,然后编译的时候选 jdk7,然后在 jdk7 上运行
    jelipo
        39
    jelipo  
       2020-03-05 23:02:29 +08:00
    Java8 使用 OracleJDK,Java11 使用 AdoptOpenJDK,试了一些情景,OpenJDK 反而慢一点
    avalon0624
        40
    avalon0624  
       2020-03-05 23:21:40 +08:00
    还在用 8, 一直是 OpenJDK
    xuanbg
        41
    xuanbg  
       2020-03-06 00:04:41 +08:00
    @beyondex 怎么就不困难了。。。全部项目都要升级新版本 JDK,还要处理不知道多少兼容性问题。费时费力没什么眼面前看得到的收益,没人愿意干。

    怕的是哪个第三方库没有对应版本的话,那就真的是酸爽了。
    orm
        42
    orm  
       2020-03-06 00:49:08 +08:00
    $ java -version
    openjdk version "11.0.6" 2020-01-14 LTS
    OpenJDK Runtime Environment Zulu11.37+17-CA (build 11.0.6+10-LTS)
    OpenJDK 64-Bit Server VM Zulu11.37+17-CA (build 11.0.6+10-LTS, mixed mode)
    lc7029
        43
    lc7029  
       2020-03-06 02:24:19 +08:00   1
    生产仍然在用 1.4 路过。。。
    daveze
        44
    daveze  
       2020-03-06 08:20:35 +08:00 via iPhone
    已升 11,生产用 openjdk,开发用 jdk。
    MakHoCheung
        45
    MakHoCheung  
       2020-03-06 09:18:53 +08:00
    以后找下家公司薪资第二,是否用 java11 放第一
    huruwo
       
    huruwo  
       2020-03-06 09:32:25 +08:00
    jdk8 战未来
    leafre
        47
    leafre  
       2020-03-06 10:21:35 +08:00
    JDK8
    nxforce
        48
    nxforce  
       2020-03-06 10:46:55 +08:00
    自用 jdk11,生产环境 8,不过有时候会对新旧版本语言特性产生混乱,所以今年需要把环境统一成 11 了。况且目前 java8->java11 的迁移,对于大部分中小规模的项目暂时还是无痛的,早日转总比等到 jdk8 结束支持再转好吧!
    ZZSZZSZZS
        49
    ZZSZZSZZS  
       2020-03-06 11:50:28 +08:00 via iPhone
    自用 OpenJDK,用的 vs 里带的那个版本
    Sendya
        50
    Sendya  
       2020-03-06 12:44:56 +08:00
    我司一个高量的对外 websocket 服务上了 jdk11 其他都还是 8
    afirefish
        51
    afirefish  
    OP
       2020-03-06 14:23:06 +08:00
    @ZZSZZSZZS vs 里面还内置了 jdk ????
    ZZSZZSZZS
        52
    ZZSZZSZZS  
       2020-03-06 15:04:03 +08:00 via iPhone
    @afirefish 安装的时候不是可以选择哪些组件吗,还内置了安卓 sdk 和 ndk 呢
    afirefish
        53
    afirefish  
    OP
       2020-03-06 16:05:13 +08:00
    @ZZSZZSZZS 看到了,是 android 用的 OpenJDK。。。我还以为 VS 能写 Java 了呢
    janxin
        54
    janxin  
       2020-03-06 16:32:52 +08:00
    6,不用谢
    jingege
        55
    jingege  
       2020-03-06 16:58:41 +08:00
    公司一般感觉都不太会升级吧。。。。因为也没有什么特别突出的特性让人有欲望升级的

    现在已经在用 go 了
    jimmyismagic
        56
    jimmyismagic  
       2020-03-06 19:11:28 +08:00
    一直在用 8,之后的没学过,也不会用,哈哈
    zouqiang
        57
    zouqiang  
       2020-03-06 20:11:20 +08:00
    openjdk 13
    DonaidTrump
        58
    DonaidTrump  
       2020-03-06 20:12:07 +08:00
    Jetbrains,最新的 IDE 都是 openJDK11
    jhsea3do
        59
    jhsea3do  
       2020-03-07 01:11:03 +08:00
    去年的项目要兼容 HPUX,AIX, 刚准备说 HPUX 最多支持到 JDK8, 结果翻了一下 HP 网页,居然发现对方来了一个飞跃性的突破...
    pzhdfy
        60
    pzhdfy  
       2020-03-07 14:02:36 +08:00
    pzhdfy
        61
    pzhdfy  
       2020-03-07 14:03:56 +08:00
    @BBCCBB
    不是新方法 而是 clean 的方法变了 没有兼容的代码直接拿到 jdk11 上运行会有 bug

    private static Cleaner lookupCleanerJava9(MethodHandles.Lookup lookup) throws ReflectiveOperationException
    {
    Class<?> cleaner = Class.forName("java.lang.ref.Cleaner");
    Class<?> cleanable = Class.forName("java.lang.ref.Cleaner$Cleanable");

    MethodHandle create = lookup.findStatic(cleaner, "create", MethodType.methodType(cleaner));

    Object theCleaner;
    try {
    theCleaner = create.invoke();
    }
    catch (Throwable t) {
    throw new RuntimeException("Unable to create cleaner", t);
    }

    MethodHandle register = lookup.findVirtual(
    cleaner,
    "register",
    MethodType.methodType(cleanable, Object.class, Runnable.class)
    ).bindTo(theCleaner);

    MethodHandle clean = lookup.findVirtual(cleanable, "clean", MethodType.methodType(void.class));

    return new CleanerImpl(register, clean);
    }

    private static Cleaner lookupCleanerJava8(MethodHandles.Lookup lookup) throws ReflectiveOperationException
    {
    Class<?> cleaner = Class.forName("sun.misc.Cleaner");
    MethodHandle register = lookup.findStatic(
    cleaner,
    "create",
    MethodType.methodType(cleaner, Object.class, Runnable.class)
    );

    MethodHandle clean = lookup.findVirtual(cleaner, "clean", MethodType.methodType(void.class));
    return new CleanerImpl(register, clean);
    }
    pzhdfy
        62
    pzhdfy  
       2020-03-07 14:07:37 +08:00
    另外个人观点 如果现状稳定 没有需求不建议老项目升级 风险较大
    我们遇到的问题是我们进程的堆有 200G,是个计算和内存密集型程序,容易发生 full gc, 原来可能暂停几十秒,使用 jdk11 后并行 full gc 一般控制在 3s 内
    cheng6563
        63
    cheng6563  
       2020-03-07 22:27:49 +08:00 via Android
    一直用的 centos 自带的 openjdk
    deef
        64
    deef  
       2020-03-08 11:06:55 +08:00
    一直在用 JDK8, 感觉近几年要是没什么重要的问题应该都不会升了
    zzzmh
        65
    zzzmh  
       2020-03-09 11:10:14 +08:00
    公司和自己都用 Openjdk8 感觉可以用到退休
    sunwei0325
        66
    sunwei0325  
       2020-03-29 18:48:10 +08:00
    新版任你发, 我用 java8
    关于     帮助文档     自助推广系统     博客   span class="snow">   API     FAQ     Solana     5075 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 03:53 PVG 11:53 LAX 20:53 JFK 23:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86