【问题标题】:sealing violation: package oracle.net.ns is sealed密封违规:包 oracle.net.ns 被密封
【发布时间】:2017-08-31 02:31:09
【问题描述】:

我正在尝试使用 Oracle SQL Developer 连接到 Oracle 11g XE 数据库。但是,我收到以下异常:

java.lang.SecurityException: sealing violation: package oracle.jdbc.driver is sealed

我在网上搜索了答案,但没有找到解决方案。

这是什么原因造成的,我该如何解决?

【问题讨论】:

标签: java oracle jdbc oracle11g ojdbc


【解决方案1】:

来自 Oracle 的此文档:Known Issues and Limitations

java.lang.SecurityException:密封违规异常(ID 6554602)

说明

从 JDBC 10.2 驱动程序开始,拥有多个 JDBC CLASSPATH 中的 jar 文件可能会导致 java.lang.SecurityException: 密封违规异常。

解决方案 (Oracle 建议)确保 CLASSPATH 包括 只有一个 JDBC 驱动 JAR 文件。

还有这个论坛:SecurityException: sealing violation from Class.forName

密封违规意味着密封包中的某些类被 从两个不同的位置(目录或 jar 文件)加载。

一个密封的包本质上是说“我知道所有的类 在这个包中来自单个 jar 文件。出于安全原因没有 其他位置可能会提供此包中的类”。

您的类路径中可能有两个 Oracle JDBC 驱动程序 jar。

因此,请确保您的类路径中没有多个 Oracle JDBC 驱动程序 jar 库。

【讨论】:

  • C:\Users\aVinci>ECHO %CLASSPATH% C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem ;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_111\lib;C:\Program Files\Java\jre1.8.0_111\lib;C:\Users\ aVinci\AppData\Local\Android\Sdk\platform-tools;C:\Users\aVinci\AppData\Local\Android\Sdk\tools;.
  • @VinciADePaul :检查包含在这些不同位置的罐子。
【解决方案2】:

当您在 CLASSPATH 中有多个 JDBC jar 文件时会发生这种情况。

【讨论】:

  • @berger 这是我的类路径,没有jar文件:C:\Users\aVinci>ECHO %CLASSPATH% C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32 ;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_111\lib;C:\Program Files\ Java\jre1.8.0_111\lib;C:\Users\aVinci\AppData\Local\Android\Sdk\platform-tools;C:\Users\aVinci\AppData\Local\Android\Sdk\tools;.
  • 确保 Oracle SQL Developer 类路径未在运行它的命令行上定义为 -cp 选项。此外,CLASSPATH 环境变量中列出的目录可能包含 jdbc 驱动程序。
猜你喜欢
  • 2016-05-22
  • 2016-02-11
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
相关资源
最近更新 更多