体验目标
场景将提供一台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.在页面左侧,单击 云产品资源 下拉菜单,查看本次实验资源。
2.单击 免费开通 创建所需资源。资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:IP地址、用户名和密码等。
连接ECS服务器
1.打开终端工具。
Windows:打开命令窗口。
Mac:打开命令窗口Terminal。
Windows用户请检查系统中是否安装有SSH工具。检查方法:
a. 在终端中输入命令ssh -v。
ssh -V
如果显示SSH版本则表示已安装,如下图所示。
b. 如果未安装,请下载安装OpenSSH工具。
2.在终端中输入连接命令ssh [username]@[ipaddress]。您需要将其中的username和ipaddress替换为上一步中创建的ECS服务器的弹性公网IP。例如:
ssh [email protected]
请参照下图在资源栏中查找ECS服务器的弹性公网IP。
命令显示结果如下:
- 输入yes。
- 同意继续后将会提示输入登录密码。密码为已创建的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
命令执行结果类似如下。
- 使用tar命令将安装包解压。
说明: 命令中的安装包文件名以实际为准,如执行报错,请查询后修改解压文件名。
tar xf Alibaba_Dragonwell_8.4.4-GA_Linux_x64.tar.gz
命令执行结果类似如下。
- 简单验证。
说明: 命令中的路径以实际为准,如执行报错,请查询后修改解压路径。
./jdk8u262-b10/bin/java -version
命令执行结果类似如下。
配置环境变量
1.执行以下命令将环境变量写入到shell登录配置中。
说明: 复制到命令行后按下回车键执行追加写入命令。
cat >> ~/.bashrc << EOF
export JAVA_HOME=$HOME/jdk8u262-b10
export PATH=$PATH:$JAVA_HOME/bin
EOF
命令执行结果类似如下。
- 执行以下命令重新加载.basbrc文件。
source ~/.bashrc
3.执行以下命令验证环境变量是否生效。
java -version
命令执行结果类似如下。
使用Dragonwell运行Hello World程序
1.执行以下命令编写Hello World源代码文件。
说明:复制到命令行后按下回车键执行覆盖写入命令。
cat > Hello.java <
命令执行结果类似如下。
- 执行以下命令编译源程序。
javac Hello.java
3.执行以下命令运行程序。
java Hello
命令执行结果类似如下。
- 执行以下命令查看程序的字节码文件。
javap -c Hello
命令执行结果类似如下。