gpt4 book ai didi

java - 如何让 jvm 加载我的 java.lang.String 而不是 rt.jar 中的

转载 作者:搜寻专家 更新时间:2023-10-31 19:46:13 25 4
gpt4 key购买 nike

我最近在研究java classloader。现在我想编写一个类,它与 rt.jar 中的一个类具有相同的包名和类名。比如自己写一个java.lang.String类,如何打破双亲委托(delegate)模型让jvm加载我的java.lang.String而不是rt.jar里的。

重新编辑
谢谢,试过了。还有↓↓↓

    D:\>java -verbose -Xbootclasspath/p:D:/myrt.jar -jar exe.jar    [Opened D:\myrt.jar]    [Opened C:\java\jre\lib\rt.jar]    [Loaded java.lang.Object from C:\java\jre\lib\rt.jar]    [Loaded java.lang.String from D:\myrt.jar]    [Loaded java.io.Serializable from C:\java\jre\lib\rt.jar]    [Loaded java.lang.reflect.GenericDeclaration from C:\java\jre\lib\rt.jar]    [Loaded java.lang.reflect.Type from C:\java\jre\lib\rt.jar]    [Loaded java.lang.reflect.AnnotatedElement from C:\java\jre\lib\rt.jar]    [Loaded java.lang.Class from C:\java\jre\lib\rt.jar]    Invalid layout of java.lang.String at value    #    # A fatal error has been detected by the Java Runtime Environment:    #    #  Internal Error (javaClasses.cpp:136), pid=6968, tid=4116    #  fatal error: Invalid layout of preloaded class    #    # JRE version:  (7.0_45-b18) (build )    # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode windows-amd64     compressed oops)    # Failed to write core dump. Minidumps are not enabled by default on client vers    ions of Windows    #    # An error report file with more information is saved as:    # D:\\hs_err_pid6968.log    #    # If you would like to submit a bug report, please visit:

最佳答案

您可以在 JVM 启动时使用 -Xbootclasspath/p 选项执行此操作:

-Xbootclasspath/p:/path/to/yourimpl.jar

/p 代表“前置”。

注意:-Xbootclasspath 不是标准的 java 选项,因此不同供应商的 JVM 可能不支持它。

关于java - 如何让 jvm 加载我的 java.lang.String 而不是 rt.jar 中的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22060752/

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