JVM | OpenJDK源码执行HelloWorld

java中用命令行执行HelloWorld

平时我们在运行java程序时, 一般有两种选择, 1是在服务器上直接用java -jar 命令来运行程序, 2是在idea中直接点击运行/debug,如下图所示:

那如果某一天,我们脱离了idea, 要用命令行来运行这个呢?

其实idea已经帮我们生成了,如下图第一行所示

我们从上截取出如下内容,然后复制到命令行中,就可以运行了

/Users/lixiang/soft/jdk-11.0.2.jdk/Contents/Home/bin/java   
-Dfile.encoding=UTF-8  
-classpath /Users/lixiang/code/tools/tools-java/out/production/classes 
com.platform.tools.jvm.Main

运行如下图所示:

Clion中运行java代码

在Clion中运行java代码,主要是前面的java命令,用我们自己编译的, 然后后面的参数等直接复制就可以了,如下图所示:

然后点击运行,就可以在ClionDebug面板中, 看到如下所示我们的java代码输出

JVM执行Java代码

这里我们要接着昨天的版本号输出继续往后讲,在java.c文件508行,可以看到加载main函数所在的类

点进去之后,可以看到. 实际上还是请求的java里面的类,如下图所示:

1,去找到这个类点进去之后可以看到是这个类sun/launcher/LauncherHelper

2,去找到上面那个类中的checkAndLoadMain这个方法

3,这个方法有Z(布尔值),I(整数类型),String 类型的入参

4,这个方法的返回值是Class类型

根据这个条件,我们可以在Idea中找到如下方法

然后我们一路跟踪下去, 可以看到,最终到了ClassLoader.java 中的defineClass1这个native方法,native方法和jdk源码的对应我们后面再一起学习.

LoadMainClass() 方法之后, 我们可以看到CreateApplicationArgs 创建应用的参数方法,去寻找Main方法,执行Main方法,如下所示:

总结

这部分的主要的知识点是怎么在Clion中执行java程序, 这样才能为后面的调试打下基础,小伙伴们,加油!

相关阅读

JVM | JVM的启动及java -version的执行过程

JVM |  阅读源码必备的C++技能

JVM | Clion导入OpenJDK11源码并调试

过年学习-JVM | JDK11源码编译

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值