JDK18下载|Java SE Development Kit18 64位 官方离线版下载

Java SE Development Kit是一款非常专业的Java开发工具包。它由甲骨文Oracle公司开发设计,目前该版本推出了全新的18.0版本,包含Java运行环境、Java开发工具和Java基础类库源代码,是Java开发以及安卓开发用户的必备JRE运行环境,免费下载,欢迎尝试。

知识兔小编精选:Java开发工具

Java SE Development Kit18

【JRE和JDK的区别】

如果知识兔在学习或从事Java开发、编译java程序,那么安装JDK

如果知识兔仅需运行java程序,只需要Java运行库,那么安装JRE

Java Development Kit(简称JDK)= Java开发套件,Java开发工具包,面向Java语言开发者。

Java Runtime Environment(简称JRE)= Java运行库,Java运行环境,面向Java程序用户们。

JDK:Java核心,含Java运行环境(JRE)、编译器(javac.exe)、开发工具(javadoc.exe、jar.exe、keytool.exe、jconsole.exe)和Java工具类库(如tools.jar)源代码等java语言编译所需的工具包。

JRE:Java语言开发的程序运行所需要的运行环境,知识兔包括JVM标准实现(java.exe等)及 Java核心类库(rt.jar等),它不包含开发工具(编译器、调试器等)

Java SE Development Kit18

【新功能】

1、JEP 409:密封类

密封类已添加到 Java 语言中。密封类和接口限制哪些其他类或接口可以扩展或实现它们。

密封类由JEP 360提出,并在 JDK 15 中作为预览功能分享。它们由JEP 397再次提出并进行了改进,并作为预览功能在 JDK 16 中分享。现在在 JDK 17 中,密封类正在最终确定,与 JDK 16 没有任何变化。

2、JEP 406:开关模式匹配(预览)

使用 switch 表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch 允许针对多个模式测试表达式,每个模式都有特定的操作,知识兔以便可以简洁安全地表达复杂的面向数据的查询

3、JEP 382:新的 macOS 渲染管线

Swing API 用于渲染的 Java 2D API 现在可以使用适用于 macOS 的新 Apple Metal 加速渲染 API。

当前默认禁用此功能,因此渲染仍使用 OpenGL API,Apple 已弃用这些 API,但仍可用并受支持。

要启用 Metal,应用程序应通过设置系统属性来指定其用途:

-Dsun.java2d.metal=true

Metal 或 OpenGL 的使用对应用程序是透明的,因为这是内部实现的差异并且知识兔对 Java API 没有影响。金属管道需要 macOS 10.14.x 或更高版本。将忽略在早期版本上设置它的尝试。

4、 用于访问大图标的新 API

javax.swing.filechooser.FileSystemView.getSystemIcon(File, int, int)JDK 17 中分享了一种新方法 ,知识兔可以在可能的情况下访问更高质量的图标。完全针对Windows平台实现;但是,其他平台上的结果可能会有所不同,稍后会得到增强。例如,通过使用以下代码:

FileSystemView fsv = FileSystemView.getFileSystemView();

Icon icon = fsv.getSystemIcon(new File(“application.exe”), 64, 64);

JLabel label = new JLabel(icon);

用户可以获得更高质量的“application.exe”文件图标。此图标适用于创建在 HighDPI 环境中可以更好缩放的标签。

5、DatagramSocket 可以直接用于加入多播组

java.net.DatagramSocket此版本中已更新以添加对加入多播组的支持。现在定义joinGroup和leaveGroup方法加入和离开组播组。java.net.DatagramSocket已更新的类级 API 文档解释了如何DatagramSocket配置普通的以及如何使用它来加入和离开多播组。

此更改意味着DatagramSocketAPI 可用于多播应用程序,而无需使用旧版java.net.MulticastSocketAPI。该MulticastSocketAPI的工作和以前一样,虽然它的大多数方法已被弃用。

6、 JEP 356:增强型伪随机数生成器

为伪随机数生成器 (PRNG) 分享新的接口类型和实现,知识兔包括可跳转的 PRNG 和额外的一类可拆分 PRNG 算法 (LXM)。

7、理想图形可视化器的现代化

Ideal Graph Visualizer (IGV) 是一种以可视化和交互方式探索 HotSpot VM C2 即时 (JIT) 编译器中使用的中间表示的工具,已经现代化。增强功能包括:

支持在高达 JDK 15(IGV 底层 NetBeans 平台支持的最新版本)上运行 IGV

更快的基于 Maven 的 IGV 构建系统

稳定块形成、组移除和节点跟踪

默认过滤器中更直观的着色和节点分类

具有更自然默认行为的排名快速节点搜索

现代化的 IGV与早期 JDK 版本生成的图形部分兼容。它支持图形加载和可视化等基本功能,但可能会影响节点聚类和着色等辅助功能。

src/utils/IdealGraphVisualizer/README.md工具源目录中的文件中分享了有关构建和运行 IGV 的详细信息。

8、错误消息中的源详细信息

当 JavaDoc 报告输入源文件中的问题时,它会显示该问题的源代码行,知识兔以及包含^指向该行位置的插入符号 ( ) 的行,其方式类似于编译器 ( javac) 诊断消息。

此外,日志和其他“信息”消息现在被写入标准错误流,知识兔让标准输出流用于命令行选项特别请求的输出,例如命令行帮助。

9、新的“新 API”页面和改进的“弃用”页面

JavaDoc 现在可以生成一个页面,总结最近 API 的变化。要包含的最新版本列表是使用–since命令行选项指定的。这些值用于查找@since要包含在新页面上的具有匹配标签的声明。该–since-label命令行选项分享了“新API”页面的标题文本使用。

在汇总弃用项目的页面上,您可以查看按弃用项目所在版本分组的项目。

10、JEP 412:外部函数和内存 API(孵化器)

介绍一个 API,Java 程序可以通过该 API 与 Java 运行时之外的代码和数据进行互操作。通过有效调用外部函数(即 JVM 之外的代码),知识兔以及安全地访问外部内存(即不由 JVM 管理的内存),API 使 Java 程序能够调用本地库和处理本地数据,而没有JNI。

11、控制台字符集 API

java.io.Console已更新以定义返回Charset控制台的新方法。返回的字符集可能与从Charset.defaultCharset()方法返回的字符集不同。例如,它返回IBM437whileCharset.defaultCharset()返回windows-1252Windows (en-US)。

12、用于反序列化的 JDK 飞行记录器事件

现在可以使用 JDK Flight Recorder (JFR) 监视对象的反序列化。当启用 JFR 并且知识兔 JFR 配置包括反序列化事件时,每当正在运行的程序尝试反序列化对象时,JFR 都会发出一个事件。反序列化事件名为jfr.Deserialization,默认情况下是禁用的。反序列化事件包含序列化过滤器机制使用的信息;请参阅ObjectInputFilter规范。此外,如果知识兔启用了过滤器,则 JFR 事件指示过滤器是接受还是拒绝对象的反序列化。

13、JEP 415:实现特定于上下文的反序列化过滤器

JEP 415:特定于上下文的反序列化过滤器允许应用程序通过 JVM 范围的过滤器工厂配置特定于上下文和动态选择的反序列化过滤器,该工厂被调用以为每个单独的反序列化操作选择一个过滤器。

14、本地字符编码名称的系统属性

引入了新的系统属性native.encoding。此系统属性分享底层主机环境的字符编码名称。例如,通常它UTF-8在 Linux 和 macOS 平台以及Cp1252Windows (en-US) 中都有。

15、添加 java.time.InstantSource

java.time.InstantSource引入了一个新界面。这个接口是一个抽象java.time.Clock,只关注当前时刻,不涉及时区。

16、十六进制格式和解析实用程序

java.util.HexFormat为原始类型和字节数组分享与十六进制之间的转换。分隔符、前缀、后缀和大写或小写的选项由返回 HexFormat 实例的工厂方法分享。

17、实验编译器黑洞支持

添加了对编译器黑洞的实验支持。这些对于低级基准测试很有用,知识兔以避免在关键路径上消除死代码,而不会影响基准性能。当前的支持是作为 CompileCommand 实现的,可作为 访问-XX:CompileCommand=blackhole,,并计划最终将其升级为公共 API。

18、 HotSpot JVM中新的类层次分析实现

HotSpot JVM 中引入了新的类层次结构分析实现。它增强了对抽象和默认方法的处理,知识兔从而改进了 JIT 编译器做出的内联决策。新的实现取代了原来的实现并且知识兔默认是开启的。

为了帮助诊断与新实现相关的可能问题,知识兔可以通过指定-XX:+UnlockDiagnosticVMOptions -XX:-UseVtableBasedCHA命令行标志来打开原始实现。

原始实现可能会在未来版本中删除。

19、 JEP 391:macOS/AArch64 端口

macOS 11.0 现在支持 AArch64 架构。该 JEP 在 JDK 中实现了对 macos-aarch64 平台的支持。添加的功能之一是支持 W^X(写异或执行)内存。它仅对 macos-aarch64 启用,并且知识兔可以在某些时候扩展到其他平台。JDK 既可以在 Intel 机器上交叉编译,知识兔也可以在基于 Apple M1 的机器上编译。

20、统一日志支持异步日志刷新

为了避免在使用统一日志的线程中出现不希望的延迟,用户现在可以请求统一日志系统以异步模式运行。这是通过传递命令行选项来完成的-Xlog:async。在异步日志模式下,日志站点将所有日志消息排入缓冲区。独立线程负责将它们刷新到相应的输出。中间缓冲区是有界的。缓冲区耗尽时,将丢弃排队消息。用户可以使用命令行选项控制中间缓冲区的大小-XX:AsyncLogBufferSize=

21、ARM 上的 macOS 可抢先体验

新的 macOS 现在可用于 ARM 系统。ARM 端口的行为应该类似于 Intel 端口。没有已知的功能差异。在 macOS 上报告问题时,请指定是使用 ARM 还是 x64。

22、 支持在 Keytool -genkeypair 命令中指定签名者

在-signer和-signerkeypass选项已被添加到-genkeypair该命令keytool程序。该-signer选项指定PrivateKeyEntry签名者的密钥库别名,该-signerkeypass选项指定用于保护签名者私钥的密码。这些选项允许keytool -genkeypair使用签名者的私钥对证书进行签名。这对于生成使用密钥协商算法作为其公钥算法的证书特别有用。

23、SunJCE Provider 使用 AES 密码支持 KW 和 KWP 模式

SunJCE 分享程序已得到增强,知识兔以支持 AES 密钥包装算法 (RFC 3394) 和带填充算法的 AES 密钥包装 (RFC 5649)。在早期版本中,SunJCE 分享程序在“AESWrap”密码算法下支持 RFC 3394,该算法只能用于包装和解包密钥。通过此增强功能,添加了两种分组密码模式 KW 和 KWP,它们支持使用 AES 进行数据加密/解密和密钥包装/解包。请查看“JDK 分享程序文档”指南的“SunJCE 分享程序”部分以获取更多详细信息。

24、新的 SunPKCS11 配置属性

SunPKCS11 分享程序添加了新的分享程序配置属性以更好地控制本机资源的使用。SunPKCS11 分享程序消耗本机资源以使用本机 PKCS11 库。为了管理和更好地控制原生资源,添加了额外的配置属性来控制清除原生引用的频率以及注销后是否销毁底层 PKCS11 Token。

SunPKCS11 分享程序配置文件的 3 个新属性是:

destroyTokenAfterLogout(布尔值,默认为 false)如果知识兔设置为 true,则在java.security.AuthProvider.logout()调用 SunPKCS11 分享程序实例时,将销毁底层 Token 对象并释放资源。这实质上使 SunPKCS11 分享程序实例在 logout() 调用后无法使用。请注意,不应将此属性设置为 true 的 PKCS11 分享程序添加到系统分享程序列表中,因为该分享程序对象在 logout() 方法调用后不可用。

cleaner.shortInterval(整数,默认为 2000,知识兔以毫秒为单位)这定义了在繁忙期间清除本地引用的频率,即清洁线程应多久处理一次队列中不再需要的本地引用以释放本地内存。请注意,在 200 次尝试失败后,即在队列中找不到引用时,更清洁线程将切换到“longInterval”频率。

cleaner.longInterval(整数,默认为 60000,知识兔以毫秒为单位)这定义了在非繁忙期间检查本机引用的频率,即清洁线程检查本机引用队列的频率。请注意,如果知识兔检测到用于清洁的本机 PKCS11 引用,则清洁器线程将切换回“shortInterval”值。

25、具有系统属性的可配置扩展

添加了两个新的系统属性。系统属性jdk.tls.client.disableExtensions用于禁用客户端中使用的 TLS 扩展。系统属性jdk.tls.server.disableExtensions用于禁用服务器中使用的 TLS 扩展。如果知识兔一个扩展被禁用,它既不会在握手消息中产生也不会被处理。

属性字符串是以逗号分隔的标准 TLS 扩展名称列表,如 IANA 文档中所注册(例如,server_name、status_request 和 signature_algorithms_cert)。请注意,扩展名区分大小写。未知、不受支持、拼写错误和重复的 TLS 扩展名令牌将被忽略。

请注意,阻止 TLS 扩展的影响是复杂的。例如,如果知识兔禁用强制扩展,则可能无法建立 TLS 连接。请不要禁用强制扩展,除非您清楚地了解其影响,否则不要使用此功能。

26、 包摘要页面上的“相关包”

包的摘要页面现在包括一个列出所有“相关包”的部分。相关包的集合是根据常见的命名约定启发式确定的,可能包括以下内容:

“父”包(即,包是其子包的包)

兄弟包(即具有相同父包的其他包)

任何子包

相关的包不需要都在同一个模块中。

Java SE Development Kit18

【使用说明】

1、所有平台

jar-为类和资源创建档案,并从档案中操作或还原单个类或资源

jarsigner-签名并验证Java归档(JAR)文件

java-启动Java应用程序

javac-读取Java类和接口定义,并将它们编译为字节码和类文件

javadoc-从Java源文件生成API文档的HTML页面

javap-反汇编一个或多个类文件

jcmd-将诊断命令请求发送到正在运行的Java虚拟机(JVM)

jconsole-启动图形控制台以监视和管理Java应用程序

jdb-查找并修复Java平台程序中的错误

jdeprscan-静态分析工具,它扫描jar文件(或其他一些类文件的聚合)以使用不赞成使用的API元素

jdeps-启动Java类依赖分析器

jfr-解析和打印Flight Recorder文件

jhsdb-附加到Java进程或启动事后调试器以分析崩溃的Java虚拟机(JVM)中核心转储的内容

jinfo-为指定的Java进程生成Java配置信息

jlink-将一组模块及其依赖性组装并优化到一个自定义运行时映像中

jmap-打印指定进程的详细信息

jmod-创建JMOD文件并列出现有JMOD文件的内容

jpackage-打包一个自包含的Java应用程序

jps-列出目标系统上已检测的JVM

jrunscript-运行支持交互式和批处理模式的命令行脚本外壳

jshell-以读取-评估-打印循环(REPL)交互方式评估Java编程语言的声明,语句和表达式

jstack-为指定的Java进程打印Java线程的Java堆栈跟踪

jstat-监视JVM统计信息

jstatd-监视已安装的Java HotSpot VM的创建和终止

keytool-管理加密密钥,X.509证书链和受信任证书的密钥库(数据库)

rmid-启动激活系统守护程序,该守护程序允许在Java虚拟机(JVM)中注册和激活对象

rmiregistry-在当前主机的指定端口上创建并启动远程对象注册表

serialver-以适合复制到正在演变的类中的形式为一个或多个类返回“ serialVersionUID”

2、仅Windows

jabswitch-启用或禁用Java Access Bridge

jaccessinspector-使用Java Accessibility Utilities API检查有关Java虚拟机中对象的可访问信息

jaccesswalker-浏览特定Java虚拟机中的组件树,并在树视图中显示层次结构

javaw-在没有控制台窗口的情况下启动Java应用程序

kinit-获取并缓存授予Kerberos票证的票证

klist-显示本地凭据缓存和密钥表中的条目

ktab-管理存储在本地密钥表中的主体名称和服务密钥

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

评论