Java Development KitJDK)是昇陽電腦针对Java开发人员发布的免费软件开发工具包(SDK,Software development kit)。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。由于JDK的一部分特性采用商业许可证,而非开源[2]。因此,2006年昇陽電腦宣布将发布基于GPL的开源JDK,使JDK成为自由软件。在去掉了少量闭源特性之后,昇陽電腦最终促成了GPLOpenJDK的发布。

Java Development Kit(JDK)
開發者昇陽電腦(母公司甲骨文公司
当前版本24.0.0(2025年3月18日,​14個月前​(2025-03-18[1]
编程语言Java
操作系统Windows NTmacOSLinuxSolaris
平台IA-32x64ARMSPARC
类型软件开发工具包
许可协议Sun协议(大部分代码同时使用GPL
网站www.oracle.com/technetwork/java/

用途

编辑

作为Java语言的SDK,普通用户并不需要安装JDK来运行Java程序,而只需要安装JRE(Java Runtime Environment)。而程序开发者必须安装JDK来编译、调试程序。

包含组件

编辑

JDK包含了一批用于Java开发的组件,其中包括:

  • javac编译器,将后缀名为.java的源代码编译成后缀名为「.class」的字节码
  • java:Java虚拟机执行入口,运行工具,运行.class的字节码
  • jar:打包工具,将相关的类文件打包成一个文件
  • javadoc文档生成器,从源码注释中提取文档,注释需符合规范
  • jdb debugger:调试工具
  • jps:显示当前java程序运行的进程状态
  • javap:反编译程序
  • appletviewer:运行和调试applet程序的工具,不需要使用浏览器
  • javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。[3]
  • javaws:运行JNLP程序
  • extcheck:一个检测jar包冲突的工具
  • apt:注释处理工具[4]
  • jhat:java分析工具
  • jstack:跟踪程序
  • jstat:JVM检测统计工具
  • jstatd:jstat守护进程
  • jinfo:获取正在运行或崩溃的java程序配置信息
  • jmap:获取java进程内存映射信息
  • idlj:IDL-to-Java编译器。将IDL语言转化为java文件[5]
  • policytool:一个GUI策略文件创建和管理工具
  • jrunscript:命令行脚本运行

JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化类库IDL库等等。

JDK中还包括各种样例程序,用以展示Java API中的各部分。

系统需求

编辑

无论LinuxWindows或者Mac OS系统,JDK均有X86X64甚至安腾架构的发行版本。且均为多语言发行,即根据系统语言的不同自动显示不同语言的信息。

版本

编辑

自JDK 5.0起,Java以两种方式发布更新[6]

  • Limited Update包含新功能和非安全修正,版本号是20的倍数
  • Critical Patch Updates(CPUs)只包含安全修正,版本号将是上一个Limited Update版本号加上五的倍数后的奇数。

Java SE 7 Update 71之後則以雙版本發布:

  • 重要補丁更新(Critical Patch Update)
  • 補丁集更新(Patch Set Update)

Oracle建議只有在當次PSU版有修正使用者遇到的特定問題時才安裝該PSU版[7]

参见

编辑

参考文献

编辑
  1. ^ Consolidated JDK 24 Release Notes. Oracle Corporation. [19 March 2025]. 
  2. ^ Oracle公布JVM未来战略 JDK将包含闭源特性 - 51CTO.COM. 开发频道 51CTO.COM. [2018-03-20]. (原始内容存档于2018-03-20). 
  3. ^ Javah - 软件人生,雕刻时光 - ITeye博客. ITeye博客. [2018-03-20]. (原始内容存档于2018-03-20) (中文(中国大陆)). 
  4. ^ Java中Annotation(注释)系列学习笔记(4)_时空网络_新浪博客. [2018-03-20]. (原始内容存档于2018-03-20). 
  5. ^ IBM Knowledge Center. IBM Knowledge Center. [2018-03-20] (美国英语). 
  6. ^ Java SE - Change in Version Numbering Scheme. ORACLE. May 6, 2013 [2013-05-16]. (原始内容存档于2019-12-22). 
  7. ^ Java CPU和PSU版本解释. ORACLE. 2014-10-14 [2016-05-03]. (原始内容存档于2019-02-16). 

外部連結

编辑

📚 Artikel Terkait di Wikipedia

Java注解

开始支持注解。Annotation Processing tool (或者说 apt tool) 提供了一个补充性的编译时注解操作的接口。文档 JSR-269 将它规范化,在 JDK 1.6 写入编译器 javac 中。 Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下

Java 5.0

Annotation全名是Program Annotation Facility,是Java SE 5.0的新功能。Java的Annotation類似於.NET的屬性(Attribute)。Java的注解是一種接口(interface),繼承自java.lang.annotation.Annotation。Class

类型签名

在计算机科学中,类型签名(英語:type signature)或类型注解(type annotation)是对程序的函数、方法、子过程、以及变量等给出其类型。特别是对函数给出其输入参数数量、类型与次序及输出结果的类型。 许多编译器产生的内部使用的函数名包含了其类型特征,这称为名字修饰,為链接器辨别不同的函数提供了方便。

ImageJ

ImageJ是一個基於 Java 的影像處理軟體,由美國國立衛生研究院和隸屬於威斯康辛大學的光學與計算儀器實驗室所開發。ImageJ 可以作為線上小程式運作、可下載應用程式運行,也可以在任何具有 Java 5 或更高版本虛擬機的電腦上運行,適用於Microsoft Windows,Mac OS,Mac

Scala

Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。它也能运行于CLDC配置的Java ME中。曾经有过另一.NET平台的实现,不过该版本已被放弃。 Scala的编译模型(独立编译,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库(对于.NET实现则可调用

Java Servlet

Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的類別,一般情况下,人们将Servlet理解为后者。

JAXB

annotation包下的Java标注,例如@XmlRootElement和@XmlElement。XML列表序列表示为java.util.List类型的属性,通过JAXBContext可以创建Marshallers(将Java对象转换成XML)和Unmarshallers(将XML解析为Java对象)。

JOSM

JOSM(聆聽,Java OpenStreetMap編輯器,英語:Java OpenStreetMap Editor)是開放街圖地理資訊的自由編輯工具,以Java撰寫。其有許多進階的功能,但是也比預設的iD線上編輯器有較複雜的用户界面。 JOSM有一些重要的功能,如匯入GPX檔案(GPS軌跡),也