jdk开发java程序的三个步骤(写了那么多年Java代码)
jdk开发java程序的三个步骤(写了那么多年Java代码)
2024-11-08 04:47:42  作者:蛋炒西红柿  网址:https://m.xinb2b.cn/life/sko427470.html


继上篇文章 全网最新最简单的 OpenJDK13 代码编译 之后,我们有了自己编译后的 jdk 和 hotspot,如下图所示。接下来就来干一番事情。


搭建调试环境

1.下载 CLion 软件

Jetbrains 是一家非常牛逼的公司,咱 java 里面用到的 IDEA 功能很强大,这公司也为 C/C 提供一个 IDE,名叫 https://www.jetbrains.com/clion/,咱需要下载这个 IDE 来调试 JVM 源码。

2.导入源码

安装完 CLion 之后,咱就可以先导入代码,下面简单记录一下操作步骤。

选择 New CMake Project from Sources


打开我们下载 OpenJDK13 的目录,我的目录是 /opt/java/openjdk/jdk13。


接下来有弹框点击 Next 就行了,等待导入源码完成(需要几分钟,可以喝杯茶)。

3.启动配置

导完源码后,我们需要配置启动程序,这里有些配置需要重新指定,主要有下面 2 点。

Executable 修改为咱们编译后的 java 程序。


Build 需要删除掉。


4.打下断点

我们在 thread.cpp 代码的 Threads::create_vm 方法打下断点。


5.开始 Debug

点击 Debug 按钮,开始调试我们的 JVM 代码。可以看到我们打的断点生效了,如下图所示。


恭喜,我们成功调试 JVM 代码。不过发现了下面这个异常信息,解决它。

6.发现这个异常

按 F9 让程序继续跑,我们发现 Console 出现了下面红框的一行字。


这是 GDB 的异常信息,我们可以通过在我们的用户目录下添加配置来解决这个问题。创建 ~/.gdbinit 文件,添加如下配置。

handle SIGSEGV nostop noprint passhandle SIGBUS nostop noprint passhandle SIGFPE nostop noprint passhandle SIGPIPE nostop noprint passhandle SIGILL nostop noprint pass

再运行就不会有这个异常信息了。

调试自己的代码

上面已经调通了我们编译的 JVM 源码,有同学可能想知道,那要调试自己写的代码得怎么操作呢?我们上面已经看到 Debug 到 JVM 源码了,我们自己的代码则可以通过我们编译后的 JDK 来编译,然后在程序执行参数那里指定。下面举个例子。

1.编写 Test 代码

我们编写一个简单的 Hello JVM 程序,代码如下。

public class Test { public static void main(String[] args) { System.out.println("hello jvm"); }}

2.javac 编译

通过我们编译后的 JDK 命令 javac Test.java 来编译。

liebrother@liebrother:/opt/java/openjdk/jdk13/build/linux-x86_64-server-release/jdk/bin$ ./javac Test.java

3.配置启动参数

然后在 Clion 程序启动配置那里指定我们的类 Test。


结果就是我们的程序被运行了。


以上就是我们今天要讲的在 JVM 层面上调试我们自己写的程序。

总结

总结一下搭建这套 JVM 环境。搭建过程中其实没有很波折,官方文档写的很清晰(虽然都是英文的),这 2 篇文章也是尽最大的努力,把一些步骤简化,也截图保留下来,一方面给自己回顾的机会,一方面也是给有想要搭建这套环境的朋友们一个捷径。这套环境接下来的定义是:给自己深入了解 JVM 的机会,在遇到某些知识点不清晰,不明白原理的时候,就可以看一看源码,揪出源头的逻辑

非常建议朋友们搭建这么一套环境,也不要怕 JVM 里面都是 C/C 代码,可能刚开始看的时候会很费劲,看多了就习惯了。

行为型模式:责任链模式

行为型模式:迭代器模式

创建型模式:单例模式

觉得文章有用帮忙转发&点赞,多谢朋友们!

  • 迷你世界的电梯如何做的教程(电梯的5种制作方法)
  • 2024-11-08电梯的5种制作方法创造简要:在迷你世界游戏中,玩家们经常会建造各种别墅房屋,为了提高居住的舒适性和豪华度,很多大神会在别墅内安装电梯,但是很多小伙伴却不知道电梯的制作方法,今天小编就来分享电梯的5种制作方法,适合各种房。
  • 秋冬应该怎样保养皮肤(秋冬应该如何保养皮肤)
  • 2024-11-08秋冬应该如何保养皮肤使用加湿器对于每天久待空调室内办公或者家中的人群,想要预防和改善皮肤干燥缺水的现象,可在室内摆放加湿器或者养殖绿色植物,这样能给室内加湿,有助于皮肤保持水分不易流失,皮肤也会持久滋润状态控制洗浴时间和。
  • 买柯基怎么买纯种的好呢(纯种柯基怎么选)
  • 2024-11-08纯种柯基怎么选在买狗的时候,最怕花了大价钱买回来一只串串狗今天就教一下大家,如何挑选纯种柯基,其实看这几方面就好!看柯基的头型买柯基可以挑选3个月左右的,这样可以更好辨别纯不纯纯种柯基的头型是有点像狐狸的,脸部稍圆。
  • 关于胡歌的个人详细介绍(胡歌为新片拼了)
  • 2024-11-08胡歌为新片拼了胡歌第一部真正意义上的一番男主电影《南方车站的聚会》将于12月6日全国上映,截止到5号下午两点,预售总票房1313万,排片占比27.7,综合成绩低于《勇敢者游戏2》,但远超雷佳音的新片《吹哨人》这样预。
  • 室内能不能养球根海棠(阳台还有地儿可以养盆)
  • 2024-11-08阳台还有地儿可以养盆导读再美的装修装饰,都不如养几盆有生命的植物春天的步伐已经慢慢走来,很快就是适合养花的旺季了,今天来带大家认识一种很优秀的阳台盆栽绿植,不仅好养易打理,而且颜值高、花期长,光照不足也开花,希望大家喜欢。
  • 卤肉熟食技术培训排行榜(酱卤肉熟食店技术培训)
  • 2024-11-08酱卤肉熟食店技术培训酱肉熟食店都是外卖店,明亮的橱窗,所售商品一览无余,让人看了就有食欲,忍不住停下买上一两款,方便食用酱肉熟食店是将所经营的肉类、豆制品类等产品加工好,直接送到店铺出售,店面不需要太大的面积,经营面积约。
  • 蔚来的产业环境(蔚来员工用公司服务器)
  • 2024-11-08蔚来员工用公司服务器本报记者龚梦泽蔚来汽车又一次火热出圈这一次并不是因为新能源汽车,而是虚拟货币“挖矿”4月7日,《证券日报》记者从蔚来汽车内部发布的一项处理通报获悉,蔚来某集群服务器管理员张某利用职务之便,使用公司服务。
  • 向往的生活黄磊到哪都是熟人(向往6大结局潦草)
  • 2024-11-08向往6大结局潦草《向往的生活》第六季在本周五顺利收官,回顾这一整季,蘑菇屋搬到了海边,《向往6》也算是来了一次乘风破浪,刚开始播出时上热搜的关键词是“无聊”,快结束时节目组为节目嘉宾辟谣的两次发声也令很多观众不满,虽。
  • 别墅风格类型划分(别墅风格的分类有几种)
  • 2024-11-08别墅风格的分类有几种你们知道什么是别墅吗?肯定大家的第一印象是贵!没错就是贵!因为追溯其起源,我国古代很早就出现了别墅,大的有帝王的行宫,将相的府邸,小的有富商巨贾地主乡绅的山庄、庄园看到这里我就知道为啥贵了~~我也不多。
  • 吃螃蟹会引发过敏吗(吃螃蟹过敏是什么原因)
  • 2024-11-08吃螃蟹过敏是什么原因有些人吃了螃蟹之后,就会发现身上会起一些一块一块的红疙瘩,而且还很痒,又不能用手抓,严重一点的还有头晕、呕吐等现象出现这就是典型的吃了螃蟹过敏的表现,那么为什么有的人吃螃蟹会过敏呢?吃螃蟹过敏怎么办1。