乘风破浪,Java遇见OpenJDK GA(Build By Microsoft),即将晋升为Azure云管理服务默认JVM

什么是Microsoft Build of OpenJDK

Java Development Kit (JDK) 是Sun公司(已被Oracle收购)针对Java开发员的软件开发工具包。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

Java is heavily used by Microsoft with more than 500,000 JVMs running internally. The Java Engineering Group is very proud to contribute back to the Java ecosystem and help power workloads such as LinkedIn, Minecraft and Azure!

Microsoft will be making Microsoft Build of OpenJDK the default JVM for Azure managed services by the end of 2021

https://www.microsoft.com/openjdk

微软构建的OpenJDK是OpenJDK的免费分支,任何人都可以免费部署到任何地方。它包括用于x64服务器上的Java11的长期支持(LTS)二进制文件,以及macOSLinuxWindows上的桌面环境。ARM上的窗口还具有Java16的早期访问二进制文件。

image

微软为Java11构建的OpenJDK二进制文件基于OpenJDK源代码,遵循Eclipse采用项目使用的相同构建脚本,并针对Eclipse采用质量保证套件(包括OpenJDK项目测试)进行测试。我们的Java11二进制文件已通过Java11的Java技术兼容性套件(TCK),用于验证与Java11规范的兼容性。微软构建OpenJDK是爪哇生态系统中任何其他OpenJDK分布的简单替代。

微软为什么会贡献OpenJDK

微软与Java的爱恨情仇

微软与Java的爱恨情仇由来已久。早在1996年,为了消除Java诞生带来的威胁,微软研发了J++,并称其符合Java规范,与Java具有一样的语法和关键字,但是没有实现Java的RMI和JNI。后来,微软被Sun以“歧视使用Java软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法”为由起诉,并败诉赔偿了两千万美元。

最近几年,微软转型云计算,拥抱开源。2014年,微软首次向OpenJDK贡献代码,内容关于Windows上TCP回环快速路径机制方面的优化。2018年10月,Oracle计划将OpenJDK的源码库迁移至GitHub。

2019年11月,微软正式宣布加入OpenJDK项目。Bruno Borges发布了一封邮件,具体信息可以在OpenJDK邮件列表中找到,微软正式签署《Oracle贡献者协议》,并表示期待未来参与Java的未来。

正式宣告贡献OpenJDK

在过去的一周中,微软正式签署了《甲骨文贡献者协议》,Oracle对我们参与该项目表示了认可及欢迎。我代表微软Java工程团队,很高兴正式加入OpenJDK项目,并期待与你们的合作。过去,如果以“微软”和“Java”为关键字进行搜索,出现的信息很少,且其中大部分也与微软如今对Java的态度相反。

在这封邮件中,Bruno Borges表示,微软及其子公司在许多方面都高度依赖Java,并在微软Azure中向客户提供Java运行时服务。微软已经认识到在Oracle成功有效管理下的OpenJDK项目所获得的价值,它收购了Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献。

由Martijn Verburg领导的Java工程团队已经与其他使用Java的微软组织及其子公司,还有Java生态系统中的合作伙伴(例如AzulSystems、Oracle、Pivotal、RedHat、Intel、SAP等)合作,整个团队将加入一些OpenJDK邮件列表并参与会话。我们期待参与Java的未来。

Bruno Borges曾经是Oracle的一名开发人员,现在担任微软Java的首席产品经理。他介绍了Java工程团队负责人,jClarity的首席执行官Martijn Verburg,而jClarity是AdoptOpenJDK的主要贡献者,后者于2019年8月被微软收购。

关于微软哪些产品在用Java

世界各地的开发人员都在学习通过Java进行编程,Java仍是企业中最常用的语言之一。它可帮助你解决所有级别的业务需求。全球有数百万的Java开发人员,Java的成功不言而喻。

Java是Azure选择的一种战略性语言。我们支持Java开发人员在多个级别部署其Java应用程序。无论你的体系结构如何,Azure都有适合你的解决方案(从单体式应用程序到微服务,甚至是无服务器应用程序)。

Microsoft一直以来都十分重视对Java和Azure上的Java的支持。你知道吗,Microsoft是OpenJDK的官方撰稿人。

Microsoft在其许多产品(如LinkedIn、Yammer、Minecraft和SurfaceDuo)中都使用了Java。

  • Apache Hadoop on Microsoft Azure - HDInsight from Hortonworks (company)
  • Minecraft (video game)
  • LinkedIn
  • Yammer
  • Surface Duo
  • Azure Spring Cloud
  • ...

Microsoft Build of OpenJDK路线图

Version MS Build of OpenJDK Release Date OpenJDK Release Date Supported Until At Least
Java 11 (LTS) May, 2021 September, 2018 October, 2024
Java 17 (LTS) TBA September, 2021 September, 2027

下载Microsoft OpenJDK

https://docs.microsoft.com/zh-cn/java/openjdk/download

Generally-available (GA) 版本 OpenJDK v11.0.11

平台 文件类型 下载链接
Linux x64 tar.gz microsoft-jdk-11.0.11.9.1-linux-x64.tar.gz
macOS x64 tar.gz microsoft-jdk-11.0.11.9.1-macos-x64.tar.gz
macOS x64 pkg microsoft-jdk-11.0.11.9.1-macos-x64.pkg
Windows x64 zip microsoft-jdk-11.0.11.9.1-windows-x64.zip
Windows x64 msi microsoft-jdk-11.0.11.9.1-windows-x64.msi

Generally-available (GA) 版本 OpenJDK v16.0.1

平台 文件类型 下载链接
Linux x64 tar.gz microsoft-jdk-16.0.1.9.1-linux-x64.tar.gz
macOS x64 tar.gz microsoft-jdk-16.0.1.9.1-macos-x64.tar.gz
macOS x64 pkg microsoft-jdk-16.0.1.9.1-macos-x64.pkg
Windows x64 zip microsoft-jdk-16.0.1.9.1-windows-x64.zip
Windows x64 msi microsoft-jdk-16.0.1.9.1-windows-x64.msi

安装Microsoft OpenJDK

基于Windows Msi安装包进行安装

https://aka.ms/download-jdk/microsoft-jdk-11.0.11.9.1-windows-x64.msi

image

image

image

image

基于WinGet安装Microsoft OpenJDK

如果你之前没有安装WinGet,你可以安装一个最新版的Windows Package Manager Preview,目前WinGet仅包括在它的预览版中。

image

winget install Microsoft.OpenJDK.11

Microsoft OpenJDK的Docker 容器镜像

可以从官方mcr服务器上拉取指定版本的容器镜像。

docker pull mcr.microsoft.com/openjdk/jdk:11-ubuntu

使用的DockerFile文件示例如下:

# Example using MS Build of OpenJDK image directly
FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu

# Continue with your application deployment
RUN mkdir /opt/app
COPY japp.jar /opt/app
CMD ["java", "-jar", "/opt/app/japp.jar"]

配置Microsoft OpenJDK

默认我们是需要手工把JDK的路径放到环境变量中的,如果你在前面的安装步骤已经勾选了那个选项就自动加了,如果没有就需要手工添加一下。

那么这里补充下手工处理的流程:

打开Windows10的设置,前往系统,切换到关于,找到右侧的高级系统设置

image

进入系统属性对话框之后,点击底部的环境变量,进入环境变量设置对话框。

image

切换到系统变量,点击新建按钮,添加名为JAVA_HOME的JDK路径项。

C:\Program Files\Microsoft\jdk-11.0.11.9-hotspot\

image

一路确定保存退出即可。

检查Microsoft OpenJDK

java -version

安装之后,最好重启一次终端,然后检查下Java的版本。

image

Visual Studio Code中使用Java

安装Java扩展包(Java Extension Pack)

想在Visual Studio Code中使用Java,微软已经为你准备好了一个开发大礼包扩展,名为Java扩展包(Java Extension Pack),有多香只有你用了才会知道。

https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack

image

这一个扩展包背后是很多扩展咯,都是你需要的。

image

开始使用Java(Getting Started)

使用Ctrl+Shift+P激活命令面板,输入Java关键词,找到Java: Getting Started这个命令项,回车即可,便会打开开始使用的说明页面,很贴心哦。

image

打开一个空白的演示目录

我们准备一个名为HelloOpenJdk的演示目录,用Visual Studio Code打开它。

image

新建一个带Main的Java文件并且运行

HelloOpenJdk目录中新建一个名为QuickStart.java的文件,内容如下:

class QuickStart {
    public static void main(String[] args) {
        System.out.println("Hello, World.");
    }
}

直接按F5运行即可。

image

配置Java运行时(Java Runtime)

使用Ctrl+Shift+P激活命令面板,输入Java关键词,找到Java: Configure Java Runtime这个命令项,回车即可,便会打开配置Java运行时的设置界面。

默认我们首先打开的是Project JDKs标签页。

image

可以看到,目前默认JDK就是我们前面安装的Microsoft OpenJDK,如果需要我们可以切换到其他JDK去,记得切换后,需要点击底部的Reload Window才生效。

image

image

切换到Installed JDKs标签页,将看到所有已安装的JDK版本。

image

切换到Java Tooling Runtime标签页,将看到当前的Java Language Server设置。

image

安装Spring Boot扩展包(Spring Boot Extension Pack)

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

想在Visual Studio Code中使用Spring Boot,微软已经为你准备好了一个开发大礼包扩展,名为Spring Boot扩展包(Spring Boot Extension Pack),有多香只有你用了才会知道。

https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack

这一个扩展包背后是很多扩展咯,足够你启动一个Spring Boot项目了。

image

安装Eclipse MicroProfile扩展包(Extension Pack for MicroProfile)

Eclipse MicroProfile是一个Java微服务开发的基础编程模型,它致力于定义企业Java微服务规范,MicroProfile提供指标、API文档、运行状况检查、容错、JWT、OpenAPI与分布式跟踪等能力,使用它创建的云原生微服务可以自由地部署在任何地方,包括ServiceMesh架构,如Istio。

它是一个社区驱动的计划,用于定义企业Java微服务的规范。MicroProfile仅用了两年时间,但它已经提供了八项创新规范并且正在快速发展。它提供指标,API文档,运行状况检查,容错,分布式跟踪等。有了它,您可以充分利用尖端的云原生技术,并以供应商中立的方式实现!

想在Visual Studio Code中使用Eclipse MicroProfile,微软已经为你准备好了一个开发大礼包扩展,名为Eclipse MicroProfile扩展包(Extension Pack for MicroProfile),有多香只有你用了才会知道。

https://marketplace.visualstudio.com/items?itemName=MicroProfile-Community.vscode-microprofile-pack

这一个扩展包背后是很多扩展咯,足够你启动一个Eclipse MicroProfile项目了。

image

新建Java项目(Create Java Project)

使用Ctrl+Shift+P激活命令面板,输入Java关键词,找到Java: Create Java Project这个命令项,回车即可,便会打开创建Java项目的引导对话框界面。

image

然后选择你要创建的项目类型,这里为了方便,我们就选No build tools类型吧,选择一个项目目录位置。

image

然后输入项目名称,比如DemoOpenJDK

image

回车,一个最简单的Java项目就创建好了。

image

F5运行试试。

image

Microsoft Learn TV中学习Java

了解如何使用Azure服务在Azure上构建、迁移和缩放Java应用程序。使用你熟悉且喜爱的工具和框架-Spring、Tomcat、WildFly、JBoss、WebLogic、WebSphere、Maven、Gradle、IntelliJ、Eclipse、Jenkins、Terraform等。

Visual Studio Code创建Spring Boot项目

安装Spring Boot扩展包(Spring Boot Extension Pack)

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

想在Visual Studio Code中使用Spring Boot,微软已经为你准备好了一个开发大礼包扩展,名为Spring Boot扩展包(Spring Boot Extension Pack),有多香只有你用了才会知道。

https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack

这一个扩展包背后是很多扩展咯,足够你启动一个Spring Boot项目了。

image

创建Java项目

Ctrl+Shift+P进入控制面板,输入Java,选择Java: 创建Java项目

image

选择Spring Boot类型

image

选择仓库类型(Maven Project)

image

参考

posted @ 2021-05-26 09:54  TaylorShi  阅读(97)  评论(0编辑  收藏  举报