部署基于Dragonwell的Java运行环境

简介: 本场景介绍如何部署和使用Dragonwell运行环境。

体验目标

场景将提供一台CentOS操作系统的ECS实例。通过该教程操作您可以搭建一个Java运行环境,并获得OpenJDK之上附加的优化功能。

背景知识

Java编译到字节码后,无法直接被硬件执行,需要运行在托管式的运行时环境,因此我们需要选择一个JRE(Java Runtime Environment)来运行Java程序。

Alibaba Dragonwell是OpenJDK的下游,提供了OpenJDK的所有能力,并且通过AdopeOpenJDK社区进行构建发布,提供高质量的经过测试验证的JDK发行版。结合Oracle JDK的支持和收费策略(在生产环境使用Oracle JDK需要购买license,如果想用OpenJDK,Oracle只提供半年的新版本发布),Alibaba Dragonwell是在生产环境使用Java的一个很好的选择。

在阿里巴巴在多个双十一呈指数增长的事务处理能力提升的背后,除了云基础设施的升级、JVM本身也扮演了极其重要的角色。阿里巴巴JDK在这些场景下积累了许多应对云原生和高并发场景的实际生产问题的经验,并通过新特性来解决。最终这些特性开源并形成了Dragonwell。

使用Dragonwell部署应用,您除了获得标准JDK提供的所有能力外,还可以使用Dragonwell提供的Elastic Heap、协程等能力。

连接ECS服务器

1.打开终端工具。
Windows:打开命令窗口。
Mac:打开命令窗口Terminal。
Windows用户请检查系统中是否安装有SSH工具。检查方法:
a. 在终端中输入命令ssh -v。

ssh -V

如果显示SSH版本则表示已安装,如下图所示。
在这里插入图片描述
b. 如果未安装,请下载安装OpenSSH工具。

2.在终端中输入连接命令ssh [username]@[ipaddress]。您需要将其中的username和ipaddress替换为上一步中创建的ECS服务器的弹性公网IP。例如:

ssh root@123.123.123.123

请参照下图在资源栏中查找ECS服务器的弹性公网IP。
在这里插入图片描述
命令显示结果如下:
在这里插入图片描述

  1. 输入yes。
  2. 同意继续后将会提示输入登录密码。密码为已创建的ECS云服务器的登录密码。

说明: 输入密码的过程中没有回显,请确保键入内容正确。
在这里插入图片描述
登录成功后会显示如下信息。
在这里插入图片描述

下载Dragonwell

1.从Dragonwell官网(http://dragonwell-jdk.io/)获取最新版本下载地址。
在这里插入图片描述2. 在命令行使用wget下载Dragonwell。
说明: 请将下面命令中的下载地址替换为上一步查询到的最新版本下载地址。

wget https://dragonwell.oss-cn-shanghai.aliyuncs.com/8/8.4.4-GA/Alibaba_Dragonwell_8.4.4-GA_Linux_x64.tar.gz

命令执行结果类似如下。
在这里插入图片描述

  1. 使用tar命令将安装包解压。

说明: 命令中的安装包文件名以实际为准,如执行报错,请查询后修改解压文件名。

tar xf Alibaba_Dragonwell_8.4.4-GA_Linux_x64.tar.gz

命令执行结果类似如下。
在这里插入图片描述

  1. 简单验证。

说明: 命令中的路径以实际为准,如执行报错,请查询后修改解压路径。

./jdk8u262-b10/bin/java -version

命令执行结果类似如下。
在这里插入图片描述

配置环境变量

1.执行以下命令将环境变量写入到shell登录配置中。
说明: 复制到命令行后按下回车键执行追加写入命令。

cat >> ~/.bashrc << EOF
export JAVA_HOME=$HOME/jdk8u262-b10
export PATH=$PATH:$JAVA_HOME/bin
EOF

命令执行结果类似如下。
在这里插入图片描述

  1. 执行以下命令重新加载.basbrc文件。
source ~/.bashrc

3.执行以下命令验证环境变量是否生效。

java -version

命令执行结果类似如下。
在这里插入图片描述

使用Dragonwell运行Hello World程序

1.执行以下命令编写Hello World源代码文件。
说明:复制到命令行后按下回车键执行覆盖写入命令。

cat > Hello.java <<EOF
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
EOF

命令执行结果类似如下。
在这里插入图片描述

  1. 执行以下命令编译源程序。
javac Hello.java

3.执行以下命令运行程序。

java Hello

命令执行结果类似如下。
在这里插入图片描述

  1. 执行以下命令查看程序的字节码文件。
javap -c Hello

命令执行结果类似如下。
在这里插入图片描述

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
XML 存储 JSON
Java程序部署
Java程序部署
|
3月前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
67 0
|
6天前
|
SQL IDE Java
入门Cloud Toolkit:简化你的Java应用开发与部署流程
【10月更文挑战第19天】作为一名长期从事Java开发的程序员,我一直致力于寻找能够简化日常开发工作的工具。在众多工具中,阿里巴巴推出的Cloud Toolkit引起了我的注意。这款免费的插件旨在帮助开发者更轻松地进行开发、测试及部署工作,尤其是在与云服务交互时表现尤为出色。本文将从个人的角度出发,介绍Cloud Toolkit的基本功能及其使用技巧,希望能帮助初学者快速上手这款实用工具。
11 1
|
23天前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
61 0
|
3月前
|
Java Devops 持续交付
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。
|
3月前
|
缓存 负载均衡 算法
Java性能优化实战:从代码到部署的全方位攻略
在软件开发的世界里,性能是金。本文将通过浅显易懂的语言和具体案例,带你了解如何从编写更高效的Java代码开始,到利用JVM调优工具,再到部署环境的精细调整,全面提升你的Java应用性能。你将学会如何识别瓶颈、选择正确的数据结构和算法、进行垃圾回收调优,以及使用现代硬件优势来加速你的应用。无论你是新手还是资深开发者,这篇文章都将为你的Java性能优化之旅提供宝贵的指导。
|
3月前
|
Java Maven
【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
|
Java Shell 数据安全/隐私保护
部署基于Dragonwell的Java运行环境
本场景介绍如何部署和使用Dragonwell运行环境。
492 0
|
NoSQL Ubuntu Java
RISC-V 中开发 Java 是一种什么体验? 让 Dragonwell JDK 来回答
由于搭载 RVV-1.0 版本的芯片现阶段实际上很少,所以 Dragonwell 可能是目前唯一能够在硬件上运行 RVV 的 JDK。
|
运维 Kubernetes Cloud Native
让 Java Agent 在 Dragonwell 上更好用
本文是《容器中的Java》系列文章之 3/n,欢迎关注后续连载 :) 。
让 Java Agent 在 Dragonwell 上更好用