web-dev-qa-db-ja.com

封印違反:パッケージOracle.net.nsは封印されています

Oracle SQLDeveloperを使用してOracle11gXEデータベースに接続しようとしています。ただし、次の例外が発生します。

Java.lang.SecurityException: sealing violation: package Oracle.jdbc.driver is sealed

Webで回答を検索しましたが、解決策が見つかりませんでした。

これは何が原因で、どうすれば修正できますか?

8
Vinci A De Paul

Oracleのこのドキュメントから: 既知の問題と制限

Java.lang.SecurityException:シーリング違反の例外(ID 6554602)

説明

JDBC 10.2ドライバー以降、CLASSPATHに複数のJDBC jarファイルがあると、Java.lang.SecurityException:シーリング違反例外が発生する可能性があります。

Solution(Oracleが推奨)CLASSPATHにJDBCドライバーJARファイルが1つだけ含まれていることを確認してください。

そしてこのフォーラム: SecurityException:Class.forNameからの封印違反

封印違反とは、封印されたパッケージの一部のクラスが2つの異なる場所(ディレクトリまたはjarファイル)からロードされたことを意味します。

封印されたパッケージとは、基本的に「このパッケージのすべてのクラスが単一のjarファイルからのものであることを知っています。セキュリティ上の理由から、このパッケージに含まれるクラスを他の場所で提供することはできません」というものです。

クラスパスに2つのOracleJDBCドライバーjarがある可能性があります。

したがって、クラスパスに複数のOracleJDBCドライバーjarライブラリがないことを確認してください。

7
Arnaud

これは、CLASSPATHに複数のJDBCjarファイルがある場合に発生します。

1
gile