Java ojdbc7.jar的驱动程序更新为oracle/security/pki/OraclePKIProvider提供了错误

Java ojdbc7.jar的驱动程序更新为oracle/security/pki/OraclePKIProvider提供了错误,java,oracle12c,Java,Oracle12c,我之前一直在使用ojdbc14.jar,现在想将其升级到ojdbc7.jar以支持oracle12c 但在连接服务器时,出现了“oracle/security/pki/OraclePKIProvider”错误 如果我将oraclepki.jar添加到类路径,服务器将正常启动,不会出现任何错误 我试图弄清楚在ojdbc7.jar中添加了什么特别的内容,它要求我添加oraclepki.jar,就像在ojdbc14.jar中一样,它从未要求我将oraclepki添加到我的类路径中 是否有人知道ojdb

我之前一直在使用ojdbc14.jar,现在想将其升级到ojdbc7.jar以支持oracle12c

但在连接服务器时,出现了“oracle/security/pki/OraclePKIProvider”错误

如果我将oraclepki.jar添加到类路径,服务器将正常启动,不会出现任何错误

我试图弄清楚在ojdbc7.jar中添加了什么特别的内容,它要求我添加oraclepki.jar,就像在ojdbc14.jar中一样,它从未要求我将oraclepki添加到我的类路径中


是否有人知道ojdbc7的哪些更改导致了此错误,以及可以采取哪些措施避免在类路径上添加oraclepki?

检查您的类路径并确保删除以下内容:(如果存在)

-XX:-使用拆分验证器

这是一个记录在Oracle支持数据库中的错误。如果您有Oracle支持,您可以在那里找到更多信息。如果不是

正如Joseph Carroll所说,从命令行Java参数中删除
-XX:-UseSplitVerifier
可能会解决您的问题。UseSplitVerifier参数基本上告诉Java使用更早、更不严格的字节码验证器(从Java6升级到Java7时,有时使用该验证器让旧的字节码检测工具工作)。不幸的是,在将某些工具从Java7升级到Java8时,它导致了一些问题。您可以做的其他事情包括(根据Oracle):

  • 升级到与java 7兼容的字节码检测工具
  • 或者 一种解决方法是在类路径中包含oraclepki_121020.jar。这是 升级到java 7兼容字节码时的有效解决方法 无法使用检测工具

  • 本文讨论了为什么在Oracle中使用Java 7时添加了
    -XX:-UseSplitVerifier
    。这是关于在Java 8中使用
    -noverify
    标志,而不是
    -XX:-UseSplitVerifier

    这是一个ClassNotFoundException异常吗?谢谢Clark,它只是说错误:oracle/security/pki/OraclePKIProvider,但我肯定地认为,在类路径上添加Jar可以解决问题。检查ojdbc14.Jar是否不在类路径中我可以通过添加oraclepki.Jar来启动服务器,但之前在ojdbc14.Jar中它不是必需的。我试图了解这场冲突的根源和性质。Oracle 12c jdbc驱动程序本身是否导致了一些更改,我们必须在类路径上添加oraclepki。这在文档“ClassNotFoundException for This class Oracle.security.pki.OraclePKIProvider被抛出,因为该类不在为数据源配置的自定义驱动程序模块Oracle中”中为我所用,但是我想知道什么是连接b/w usesplitverifier和那个异常?