gpt4 book ai didi

java - 是否可以从核心文件中确定用于启动 JVM 的 main 方法?

转载 作者:行者123 更新时间:2023-12-02 02:12:41 33 4
gpt4 key购买 nike

启动时,JVM 会查找用户指定的类并运行其中包含的签名为“public static void main(String[])”的方法。

执行 main 方法的线程显然可以终止,而 JVM 继续运行 main 方法生成的其他线程。因此,提取 Java 堆栈跟踪(例如“jstack”输出)不足以找出启动 JVM 的初始类。我也不知道 JDK 中通常包含的其他命令会从正在运行的 JVM 或核心文件中提取该信息。

我正在研究一些用于分析核心文件的自动化,这将有助于了解启动 JVM 的类,即使在创建核心文件时没有线程在该类下运行代码.

问题:一般来说,JVM(尤其是 Oracle 和 OpenJDK)会跟踪调用 main 方法的类吗?

最佳答案

jinfo实用程序(包含在 OpenJDK 和 Oracle JDK 中)可以告诉主类。它适用于实时 JVM 和核心转储。

例如以下是如何从核心转储中查找 Java 命令行:

jinfo /path/to/java core.1234 | grep sun.java.command

从 JDK 9 jinfo 开始,仅适用于实时进程,而 jhsdb jinfo 适用于核心转储。

关于java - 是否可以从核心文件中确定用于启动 JVM 的 main 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49760840/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com