有没有办法检查所有引导(核心)java 类(属于 Java 运行时环境)是否已加载/初始化以在 Java 中使用?
在我可以访问 JRE 但不能访问实际应用程序的罕见情况下,我需要检查这一点,因此我不能简单地等待主应用程序从那时起运行和执行。
有没有办法检查所有引导(核心)java 类(属于 Java 运行时环境)是否已加载/初始化以在 Java 中使用?
在我可以访问 JRE 但不能访问实际应用程序的罕见情况下,我需要检查这一点,因此我不能简单地等待主应用程序从那时起运行和执行。
JVM 将在“按需”的基础上加载类,因此引导类路径上的“所有”类都不会被加载。
也就是说,从 1.5 起,Sun JVM 使用“类数据共享”来预加载一组特定的类。我不知道加载了哪些类,但怀疑它仅限于java.lang
包中的那些。
如果您只是想跟踪类何时加载,请-verbose:class
在启动 JVM 时使用命令行选项。
阅读了您的评论(并意外删除了我的 cookie),我只能说JVMTI几乎可以保证无论您尝试做什么,它都是一个更好的选择。
但是,如果您一心想要修改 JRE 类,为什么不简单地添加一个将在FileWriter
初始化期间设置的静态布尔变量呢?