指定 jar 文件,检测类由系统类加载器定义。
当代理的系统类加载器(参见 getsystemclassloader()
)未能成功搜索到类时,jarfile
中的条目也将被搜索。
可以多次使用此方法,按照调用此方法的顺序添加多个要搜索的 jar 文件。
除了需要系统类加载器为检测而定义的类或资源外,代理应该注意确保 jar 不包含任何其他类或资源。
违反此规定将导致难以诊断的不可预料行为。(参见 appendtobootstrapclassloadersearch
)。
如果实现了名为 appendtoclasspathforinstrumentation
的方法(带有一个类型为 java.lang.string
的参数),那么系统类加载器支持添加要搜索的 jar 文件。不要求该方法具有 public
访问权。jar 文件名可以通过对 jarfile
调用 getname()
方法获取,并将作为参数提供给 appendtoclasspathforinstrumentation
方法。
java 虚拟机规范规定,后续尝试解析 java 虚拟机以前未能成功解析的符号引用将总是失败,并抛出与最初解析尝试失败时相同的错误。因此,如果 jar 文件包含的某个条目对应于 java 虚拟机未能成功解析引用的类,那么后续尝试解析该引用将总是失败,并抛出与最初解析尝试失败时相同的错误。
此方法不更改 java.class.path
系统属性
的值。
- 参数:
jarfile
- 当系统类加载器未成功搜索到类时要搜索的 jar 文件。
- 抛出:
unsupportedoperationexception
- 如果系统类加载器不支持添加要搜索的 jar 文件。
nullpointerexception
- 如果 jarfile
为 null
。- 从以下版本开始:
- 1.6
- 另请参见:
appendtobootstrapclassloadersearch(java.util.jar.jarfile)
,
classloader.getsystemclassloader()
,
jarfile