问题描述
您可以使用-Xbootclasspath/p
JVM启动时的选项来执行此操作:
-Xbootclasspath/p:/path/to/yourimpl.jar
/p
代表“前置”。
注意:-Xbootclasspath
这不是标准的Java选项,因此不同供应商的JVM可能不支持它。
解决方法
我认真研究了Java类加载器。现在,我想编写一个与rt.jar中的类之一具有相同的包名称和类名称的类。例如,我自己编写一个java.lang.String类,以及如何打破父级委托模型以使jvm加载我的java.lang.String而不是rt.jar中的类。
重新编辑
Thx,尝试过。还有↓↓↓
D:\> java -verbose -Xbootclasspath / p:D:/myrt.jar -jar exe.jar
[打开D:\ myrt.jar]
[打开的C:\ java \ jre \ lib \ rt.jar]
[从C:\ java \ jre \ lib \ rt.jar加载java.lang.Object]
[从D:\ myrt.jar加载java.lang.String]
[从C:\ java \ jre \ lib \ rt.jar加载java.io.Serializable]
[从C:\ java \ jre \ lib \ rt.jar加载java.lang.reflect.GenericDeclaration]
[从C:\ java \ jre \ lib \ rt.jar加载java.lang.reflect.Type]
[从C:\ java \ jre \ lib \ rt.jar加载java.lang.reflect.AnnotatedElement]
[从C:\ java \ jre \ lib \ rt.jar加载java.lang.Class]
值的java.lang.String布局无效
#
#Java运行时环境检测到致命错误:
#
#内部错误(javaClasses.cpp:136),pid = 6968,tid = 4116
#致命错误:预加载类的布局无效
#
#JRE版本:(7.0_45-b18)(内部版本)
#Java VM:Java HotSpot(TM)64位服务器VM(24.45-b08混合模式Windows-amd64
压缩的哎呀)
#写入核心转储失败。客户端版本默认情况下不启用小型转储
Windows离子
#
#包含更多信息的错误报告文件另存为:
#D:\\ hs_err_pid6968.log
#
#如果您想提交错误报告,请访问: