[Java/OracleJDK/OpenJDK] JDK厂商的识别与替换
0 序言
- jdk版本> oracle jdk 8u202,对于企业而言,将有知识产权风险。此时,建议使用低版本jdk,或者使用openjdk。
即 oracle jdk 8u202,无产权风险
1 概述: Jdk的厂商
1.1 识别JDK的厂商
识别Java命令的厂商
- 方法1:要查看Java的厂商信息,可以通过命令行输入
java -version
,或者使用Java代码获取相关信息。
$ java -version java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
这将显示当前安装的Java版本和厂商信息。例如,如果输出中包含“
Java(TM) SE Runtime Environment
”,则表示这是由Oracle
提供的JDK;如果是“OpenJDK Runtime Environment
”,则表示是OpenJDK
。
- 方法2
$ java -XshowSettings:properties -version java.runtime.name = Java(TM) SE Runtime Environment java.runtime.version = 1.8.0_261-b12 java.specification.name = Java Platform API Specification java.specification.vendor = Oracle Corporation java.specification.version = 1.8 java.vendor = Oracle Corporation java.vendor.url = http://java.oracle.com/ java.vm.name = Java HotSpot(TM) 64-Bit Server VM java.vm.specification.vendor = Oracle Corporation java.vm.specification.version = 1.8 java.vm.vendor = Oracle Corporation
查看指定Java进程的厂商
- 方法1
# jps -l # jcmd {pid} PerfCounter.print ... java.property.java.vm.specification.vendor="Oracle Corporation" java.property.java.vm.vendor="Oracle Corporation" ...
- 方法2
# jps -l # jcmd {pid} VM.system_properties java.vm.specification.vendor=Oracle Corporation java.specification.vendor=Oracle Corporation ... #java.home=D\:\\Program\\IDEA\\IDEA_COMMUNITY 2022.2\\jbr #java.home=D\:\\Program\\Java\\jdk-17.0.7
1.2 OpenJDK 的获取
- OpenJDK 官网
- https://openjdk.org/
- https://github.com/openjdk/jdk (支持 jdk9 及之后的 源码和jdk包的获取)
- 微软官网
- https://learn.microsoft.com/zh-cn/java/openjdk/download
- https://adoptium.net/zh-CN/temurin/releases?version=8 (支持获取 openjdk8 的安装包,微软官方链接至此)
- https://learn.microsoft.com/zh-cn/java/openjdk/download#openjdk-8 √
- https://adoptium.net/temurin/releases/?version=8 √ (微软官方链接至此)
- https://learn.microsoft.com/zh-cn/java/openjdk/download#openjdk-11 √
- https://learn.microsoft.com/zh-cn/java/openjdk/download#openjdk-17 √
- Docker 镜像:
docker-release/docker.io/library/eclipse-temurin:8-jdk-alpine
1.3 基于Java构建的常用软件
IDEA
- IDEA 【软件本身】是 openjdk,但IDEA中开发者给【项目工程】配置的 jdk,要单独检查。
IDEA 内置的 jdk,默认是使用 openjdk
如:
java.home=D\:\\Program\\IDEA\\IDEA_COMMUNITY 2022.2\\jbr
DBeaver
- DBVeaver 依赖的jdk,需用户自行配置
如 java.home=D:\Program\Java\jdk-17.0.7
- 修改DBeaver设置的JDK
D:\Program\DBeaver-23-0-4\dbeaver\dbeaver.ini
:
-vm D:\Program\Java\openjdk17\jdk-17.0.16+8\bin\javaw.exe -vmargs -XX:+IgnoreUnrecognizedVMOptions -Dosgi.requiredJavaVersion=17 --add-modules=ALL-SYSTEM --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio. --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/jdk.internal.vm=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED -Xms64m -Xmx1024m -Ddbeaver.distribution.type=zip
Y 推荐文献
- JDK如何判断自己是什么公司的 - CSDN
- [JVM/APM] 应用诊断工具之jcmd命令 - 博客园/千千寰宇
评论