【JVM】跟我一起来编译OpenJDK

编译OpenJDK

前言

作为一名Javer,应该不少人都想编译一下OpenJDK然后在项目中用上它,自己还可以在OpenJDK中加入自己的东西,而不用受限于Oracle官网上的JDK,市面上还有很多技术也是运行在JVM之上的,这更加说明了研究JVM的重要性,比如Kotlin、Groovy、JRuby、Jython、Scala等等,接下来让我们一起探索JVM吧~

环境准备

  • VMware 17
    在这里插入图片描述
  • OpenJDK 1.8
    openjdk-8u40-src-b25-10_feb_2015.zip
  • BootJDK:1.7
    jdk-7u80-linux-x64.tar.gz
  • Ubuntu 16
cover@ubuntu:~/Documents$ cat /proc/version
Linux version 4.15.0-45-generic (buildd@lcy01-amd64-027) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)) #48~16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019

PS:这里需要解释下Boot JDK这里的作用,因为OpenJDK里面有些功能是用Java代码实现的,这些需要Boot JDK支持,比如说jps、jstat、jmap、jinfo等,还有一些核心的jar包,如rt.jar、tools.jar等。但是Boot JDK有个要求就是需要比你要编译的OpenJDK版本要低,但是低多少,这个没法说,需要去实践,理论上来说,但是建议低一个版本即可,因为版本相差太多的话,差异也会随之增大。

安装依赖

### 安装OpenJDK 8于Linux系统的逐步指导 #### 准备工作 为了确保系统环境适合安装新的Java版本,在开始之前应当更新现有的软件包列表。这可以通过执行`sudo apt-get update`来完成对于基于Debian的发行版,如Ubuntu。 #### 下载并安装OpenJDK 8 针对大多数主流Linux发行版而言,可以直接通过官方仓库获取OpenJDK 8。以Ubuntu为例: ```bash sudo apt-get install openjdk-8-jdk ``` 这条命令会自动处理依赖关系,并下载以及配置好所需的组件[^1]。 #### 验证安装成功与否 一旦上述过程顺利完成之后,则可以利用如下指令验证是否正确设置了JAVA_HOME变量及其对应的路径指向了预期的位置: ```bash update-java-alternatives -l ``` 该操作能够展示当前已知的所有Java版本连同它们各自的安装目录位置。如果一切正常的话,应该能看到类似于下面这样的输出结果: java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64[^2] #### 设置默认使用的Java版本(可选) 如果有多个不同版本共存的情况下,可能还需要指定哪一个作为全局默认选项。此时可以用到`alternatives`工具来进行管理: ```bash sudo update-alternatives --config java ``` 按照提示选择希望设为默认的那个条目即可。 #### 测试新安装的Java运行状况 最后一步就是简单测试一下刚刚安好的OpenJDK能否正常使用。比如编写一段简单的HelloWorld程序保存成`.java`文件形式,接着编译它再跑起来看下效果怎样。 ```bash echo 'public class HelloWorld { public static void main(String[] args){ System.out.println("Hello, world!"); }}' > HelloWorld.java && javac HelloWorld.java && java HelloWorld ``` 这段脚本将会创建、编译并且立即执行一个名为HelloWorld的小应用程序,假如一切都按计划行事,终端里就会显示出“Hello, world!”字样说明已经大功告成了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coffee_babe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值