BuiltinClassLoader不能被解析为一个类型。

问题描述 投票:1回答:1

使用Eclipse 2020-03版本,在添加 "ojdbc-12.1.0.2.0.jar "作为其中一个与ORACLe有依赖关系的项目的类路径后,在构建过程中遇到以下错误。

BuiltinClassLoader不能被解析为一个类型。

该类在一个项目中被用于从特定文件夹中加载特定格式的jar文件。

java classloader urlclassloader
1个回答
1
投票

你的问题有一些比较奇怪的地方。

该类 jdk.internal.loader.BuiltinClassLoader 是Java 9中增加的一个内部类。

然而,根据 Oracle 12.1.0.2 JDBC驱动下载 页面。

  • JAR文件名是 ojdbc6.jarojdbc7.jarojdbc-12.1.0.2.0.jar.
  • ojdbc7.jar 后面的那个)已经通过了Java 7和Java 8的认证。 这意味着它 不该 在Java 9中添加的类上有任何依赖性。

所以... 我有几个理论。

  1. 你有一个来源可疑的JDBC JAR文件。 取决于你从哪里得到它,它可能包含某种恶意软件。 我建议从Oracle网站上下载驱动程序;见上文。

  2. 你有一个真正的Oracle JDBC驱动(ojdbc6.jar或ojdbc7.jar),但有人给它重命名了。 如果是这样,就会出现无法解决的类名错误。不能 驱动程序JAR文件引起的。 实际上,它可能存在于您的代码中,或者您正在使用的其他库中。

    • 试着搜索一下你的源代码
    • 试试解压您正在构建的JAR,并使用 javap ... | grep BuiltinClassLoader 在...上 .class 文件,看看你是否能发现负责的类JAR。

    无论是你的代码还是第三方代码,都不应该依赖于该类的 BuiltinClassLoader 类定义的 jdk.internal.loader. 它是一个内部类。

  3. 无法解决的 BuiltinClassLoader 类有一个不同的包名。 搜索你的代码和上面的JARs。

© www.soinside.com 2019 - 2024. All rights reserved.