コンパイラがJREのものではなく依存するライブラリからクラスを取得しているため、コンパイルエラーが発生します。 クラスは両方のライブラリで定義されていますが、優先順位を確立する方法はわかりません。EclipseでMavenプロジェクトをコンパイルするときに、JREと依存関係の間で順序を変更します
私はEclipseで行うことができます:プロパティ - > Javaビルドパス - >オーダーとエクスポートを順番に並べ替えます。しかし、MavenのEclipseプラグインがプロジェクトを再度ビルドすると、この注文は失われます。
干渉のサブ依存関係を除外すると、問題は解決しますが、将来は実行エラーが発生しないかどうかはわかりません。
JREと依存関係間の順序を修正する方法はありますか(Maven Iを推測してください)?
EDIT クラスjavax.xml.XMLConstants
は、両方のJDK
のライブラリにし、(私は必要jasperreports
の依存性である)stax-api
ライブラリで定義されています。 Eclipseのコンパイラは、stax-api
で宣言されたものの、実際にはJDK
に存在するものの、javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI
が存在しないことを確認しています。 コンパイラが最初にJDKでそのクラスを探すことを望みます。
ノートを参照してください。 。 –
これは解決策の問題ではないかもしれませんが、ライブラリを更新します。 –
はい。使用しているJavaバージョンではライブラリが古すぎます。 "java。"名前空間はJVM自体のために予約されています。 –