科普文:【支持信创、宣传国产】loongson-jdk11.0.-linux-loongarch64 龙芯JDK

概叙

科普文:【支持信创、宣传国产】使用龙芯JDK 8/11/17的风险分析-CSDN博客

科普文:【支持信创、宣传国产】用龙芯JDK 8/11/17的法律风险-CSDN博客

科普文:【支持信创、宣传国产】用龙芯JDK 8/11/17会被收费吗?-CSDN博客

科普文:【支持信创、宣传国产】Spring Boot 2.6 + Spring Cloud 2021 从 Oracle JDK 11 切换至龙芯JDK 11的适配方案-CSDN博客

科普文:【支持信创、宣传国产】通过JCK认证的国产JDK梳理-CSDN博客

下载地址

龙芯上的Java | 龙芯开源社区

备注:暂不支持window版 

 龙芯JDK简介

龙芯中科基于OpenJDK研制并发布了龙芯平台Java环境。

目前,龙芯平台Java环境已经发布了包括21、17、11和8在内的4个长期支持(Long-Term Support,LTS)版本,龙芯中科对这些LTS版本提供安全更新、问题修复和持续优化。

除了多版本支持以外,龙芯平台Java环境还具有符合Java SE标准,开源,免费,支持C1/C2即时编译器和向量加速等优化,支持ZGC和Shenandoah GC等先进垃圾收集器(Garbage Collection,GC),支持向量API(Vector API)、虚拟线程(Virtual Threads)和外部函数和内存API(Foreign Function & Memory API)等Java社区前沿特性等特点。

龙芯平台Java环境具体情况如下:

    • LoongArch平台上通过JCK测试,符合Java SE,新应用程序和现有应用程序无需修改即可运行
    • GPLv2 (with Classpath Exception),可以免费下载、使用和重新发布
    • 跟进社区最新版本,获取及时的安全更新和问题修复
    • 支持解释器:Template Interpreter(模板表解释器)
    • 支持JIT即时编译器:包括Client Compiler(C1),Server Compiler(C2)和Tiered Compilation(分层编译)
    • 支持多种垃圾收集器:包括Serial GC,Parallel GC, G1 GC,ZGC(JDK17、JDK21),Shenandoah GC(JDK17、JDK21)和CMS GC(JDK8、11)
    • 支持多种Linux操作系统:包括Loongnix、UOS、麒麟等64位操作系统
    • 支持LoongArch64和MIPS64:包括3A5000/3A6000/3B5000/3C5000/3C5000L/2K2000、3A4000/3B4000/3A3000/3B3000等PC和服务器
    • 支持多版本:包括21、17、11和8在内的LTS版本
    • 支持JavaFX(OpenJFX)
    • 支持Java Web Start(IcedTea-Web)
    • 支持JNA(Java Native Access)
    • 比Oracle JDK更长的免费维护时间
    • 专业团队支持

      主要的服务器和桌面Java应用均可在龙芯平台上适配,并在龙芯客户中经过了长期、大量的实践验证,这些软件包括但不限于:

    • Apache Eclipse IDE

    • Netbeans IDE
    • Apache Tomcat
    • Apache Hadoop
    • Apache Kafka
    • Jenkins
    • CoreMail邮件系统
    • 东方通、金蝶等主要国产中间件
    • 永中Office
    • 泛微e-cology等OA系统等

    安装方法

    TAR包

    1. 从 下载页面 下载.tar.ga安装文件,请确认所使用的版本。
    2. 验证下载文件的校验和是否与下载页面上提供的值匹配。要计算校验和,请使用以下命令:
       $ md5sum <package>.tar.gz
      
      示例:
       $ md5sum loongson21.1.0-fx-jdk21_35-linux-loongarch64.tar.gz
       8b196334043bf4368dbd4b0d97b338cd  loongson21.1.0-fx-jdk21_35-linux-loongarch64.tar.gz
      
    3. 解压缩下载的TAR包。

       $ tar zxf <package>.tar.gz
      

      解压至/opt目录下为例:

       $ tar zxf loongson21.1.0-fx-jdk21_35-linux-loongarch64.tar.gz -C /opt
      
    4. 验证是否安装成功。

       $ <installation_folder>/bin/java -version
       openjdk version "21" 2023-09-19
       OpenJDK Runtime Environment Loongson21.1.0 (build 21+35)
       OpenJDK 64-Bit Server VM Loongson21.1.0 (build 21+35, mixed mode, sharing)
      
    5. (可选的)将<installation_folder>/bin添加至PATH环境变量,这样可以从任何目录执行java而无需指定完整路径。

       $ export PATH=<installation_folder>/bin:$PATH
       $ java -version
       openjdk version "21" 2023-09-19
       OpenJDK Runtime Environment Loongson21.1.0 (build 21+35)
       OpenJDK 64-Bit Server VM Loongson21.1.0 (build 21+35, mixed mode, sharing)
      

    DEB包

    根据不同的系统环境,选择相应的安装包形式。在基于Debian的发行版上,选择DEB包的安装方式。

    1. 从 下载页面 下载.deb安装文件,请确认所使用的版本。

    2. 在软件包下载目录,运行下面的命令。将<package>替换为实际的文件名。该命令可能会要求您确认是否要安装包的依赖项。使用包管理器安装需要root权限。请登录到root账户或使用sudo来运行下面列出的命令。

       sudo apt install ./<package>.deb
      

      比如,在Loongnix Desktop上安装JDK 23 DEB包:

       sudo apt install ./loongson23.1.17-fx-jdk23_37-linux-loongarch64.deb
      

      该软件包安装在/usr/lib/jvm/loongson-jdk23-fx-loongarch64

    3. 切换到目标版本。请参考下面的章节,在多个JDK版本间切换

    4. 在终端窗口中运行java -version来验证安装是否成功。应该会看到类似的输出:

       $ java -version
       openjdk version "23" 2024-09-17
       OpenJDK Runtime Environment Loongson23.1.17 (build 23+37)
       OpenJDK 64-Bit Server VM Loongson23.1.17 (build 23+37, mixed mode, sharing)
      

    RPM包

    根据不同的系统环境,选择相应的安装包形式。在基于RPM的发行版上,选择RPM包的安装方式。

    1. 从 下载页面 下载.rpm安装文件,请确认所使用的版本。

    2. 在软件包下载目录,运行下面的命令。将<package>替换为实际的文件名。该命令可能会要求您确认是否要安装包的依赖项。使用包管理器安装需要root权限。请登录到root账户或使用sudo来运行下面列出的命令。

       sudo yum install ./<package>.rpm
      

      比如,在Loongnix Server上安装JDK 23 RPM包:

       sudo yum install ./loongson23.1.17-fx-jdk23_37-linux.loongarch64.rpm
      

      该软件包安装在/usr/lib/jvm/loongson-jdk23-fx

    3. 切换到目标版本。请参考下面的章节,在多个JDK版本间切换

    4. 在终端窗口中运行java -version来验证安装是否成功。应该会看到类似的输出:

       $ java -version
       openjdk version "23" 2024-09-17
       OpenJDK Runtime Environment Loongson23.1.17 (build 23+37)
       OpenJDK 64-Bit Server VM Loongson23.1.17 (build 23+37, mixed mode, sharing)
      

    Docker镜像

    龙芯平台提供了预装JDK的Docker镜像,这些镜像基于以下操作系统之一。

    OSImage Name
    LoongnixServercr.loongnix.cn/library/openjdk:${JDK_VER}
    Debian-buster-slimcr.loongnix.cn/library/openjdk:${JDK_VER}-debian
    Anolisos 8.9cr.loongnix.cn/library/openjdk:${JDK_VER}-anolisos

    其中,${JDK_VER}的值为龙芯已发布JDK版本中大版本的值,比如811172123等。

    要拉取特定的镜像,请在docker pull中使用相应的镜像名称。比如,要拉取带有龙芯平台JDK 23的anolisos镜像,请运行:

    docker pull cr.loongnix.cn/library/openjdk:23-anolisos
    
    使用docker运行Java应用
    1. 测试docker镜像

       docker run -it --rm cr.loongnix.cn/library/openjdk:23-anolisos java -version
      

      如果在终端中能正确打印版本信息,则说明在容器内成功执行了java

    2. 在容器内启动应用程序

      假设运行的应用程序位于一个单独的目录中,在该目录中通过执行java MyApp来运行应用程序。使用docker run-v选项可以使该目录在容器内可用。命令可能如下所示:

       docker run -it --rm \
           -v ${PWD}:/usr/src/project  \
           -e CLASSPATH=/usr/src/project \
           cr.loongnix.cn/library/openjdk:23-anolisos java MyApp
      

    通过操作系统源

    Loongnix等操作系统源中会集成龙芯平台Java环境及其后续更新。

    比如,在Loongnix Server 8.3上可通过如下命令安装JDK 8:

    $ sudo yum install java-1.8.0-openjdk-devel
    

    在Loongnix Desktop 20.6上可通过如下命令安装JDK 8:

    $ sudo apt install openjdk-8-jdk
    

    卸载方法

    DEB

    如果使用DEB包安装了Java环境,可使用apt包管理器将其卸载:

    $ sudo apt remove <package_name>
    

    RPM

    如果使用RPM包安装了Java环境,可使用yum包管理器将其卸载:

    $ sudo yum remove <package_name>
    

    在多个JDK版本间切换

    一个系统可以同时安装多个Java环境,并通过如下命令切换默认版本(以8和13并存为例)

    $ sudo update-alternatives --config java
    
    共有 2 个提供“java”的程序。
    
      选项    命令
    -----------------------------------------------
    *+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.202-1.b08.8.1.2.fc21.loongson.mips64el/jre/bin/java
       2           /usr/lib/jvm/java-13-openjdk-13.0.0.33-0.3.ea.rolling.fc21.loongson.mips64el/bin/java
    
    按 Enter 保留当前选项[+],或者键入选项编号:
    

    选择2并确认。

    验证JDK版本
    $ java -version
    openjdk version "13" 2019-09-17
    OpenJDK Runtime Environment Loongson13-ea (build 13+33-20190916)
    OpenJDK 64-Bit Server VM Loongson13-ea (build 13+33-20190916, mixed mode, sharing)
    
    

     常见问题

    什么是龙芯平台JDK?

    龙芯公司基于OpenJDK从无到有实现的LoongArch64和MIPS64上的版本。

    龙芯平台JDK的License?

    GPLv2,with Classpath Exception

    龙芯平台JDK的价格?

    免费。

    龙芯平台JDK通过了哪些测试?

    JCK, jcstress, SPECjvm2008, SPECjbb2015,Dacapo等主流Java测试和Benchmark。

    功能相关问题

    龙芯平台JDK支持浏览器插件和Java Web Start吗?

    支持。但是,Java Web Start和浏览器插件并不是JDK标准中必须的,由于一些使用和协议等原因,龙芯目前没有在JDK中直接集成,而是以OS集成的方式部署的。针对该问题,龙芯正在寻找更便于用户使用的解决方案。

    龙芯平台JDK支持JavaFX吗?

    支持。

    龙芯平台JDK支持Eclipse吗?

    支持。

    版本相关问题

    为什么采用OpenJDK而没有采用Oracle JDK?

    Oracle JDK是Oracle公司发布的版本,没有开放源代码,无法移植到Oracle JDK不支持的平台上。龙芯平台JDK是基于开源的OpenJDK研发的,通过了JCK的测试,符合Java SE的标准。Oracle JDK和OpenJDK都是JDK的具体实现,只要是符合Java SE标准的程序,均可在Oracle JDK和OpenJDK上运行。另外,龙芯平台JDK,100%开源,可免费下载和使用,遵循GPLv2 with the Classpath Exception协议,在使用或重新发布方面无限制,相比Oracle JDK更自由更可控,且Oracle计划从2019年1月起开始停止jdk8u的免费更新,而龙芯平台JDK不存在这方面的问题,会进行长期支持。

    关于jdk8u中小版本号60和77等版本的区别问题

    二者同属jdk8u,是jdk8u的具体的小版本,77较60相比主要包含了更多的bug修复和安全类更新[1][2],功能基本一致。另外,龙芯计划2018年年底发布龙芯平台JDK 8.1,将至少采用181版本,届时也将涵盖77中包含的功能、修复和安全类更新。

    什么时候支持OpenJDK 7?

    OpenJDK 8已成为市场主流,龙芯目前没有支持OpenJDK 7的计划。

    常见错误

    有java,没有javac怎么办?

    安装了JRE,没有安装JDK,yum install java-1.8.0-openjdk-devel

    发生JVM崩溃怎么办?

    JVM崩溃后会在java运行的目录下产生文件名为hs_err_pidxxx.log的文件,该文件为JVM的崩溃日志,记录了JVM崩溃时的相关信息。出现JVM崩溃后:

    1. 确认是否是最新版本龙芯平台JDK
    2. 若不是,更新到最新版本的龙芯平台JDK
    3. 若是,请将崩溃日志,复现方法,是否偶发等情况说明发送给龙芯JVM组
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    01Byte空间

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值