gpt4 book ai didi

java - 更改和使用 jdk 代码的最简单方法是什么

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:38 30 4
gpt4 key购买 nike

我只是想玩一下 jdk 。就像更改 java.util 等中某些实用程序中某些算法的实现一样。我只是尝试将 Treemap 复制到一个新类,但在同一个包 java.util 中。但是当我尝试使用我复制的类时,我得到

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.util
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at Test.main(Test.java:7)

但我也无法更改包,因为 Treemap 正在使用 java.util 中其他类的一些包访问内容。

我只是告诉了我做了什么。但请告诉我是否有更简单的方法来更改jdk实现的某些部分并使用修改后的代码?

最佳答案

使用-Xbootclasspath/p:mydir将您的类优先于系统类加载到引导类加载器中。 ( p 是前置的。)

如果您想复制这些类而不是替换它们,那么它们需要位于 java. 之外。如果它依赖于包私有(private)访问,那么您需要将其他类复制到(或使用 -Xbootclasspath/p: 将它们公开)。包层次结构。

关于java - 更改和使用 jdk 代码的最简单方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016601/

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