人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaとMavenの質問です。
特定のサードパーティのライブラリ(JAR)にバグがあるため、
バグのあるクラスだけソースコードに手を入れました。
しかし作ったアプリをMavenで実行可能JARにすると、
どうもクラスロード時に探す順番が変わると見えて
修正したクラスではなく元のJARの中のクラスが使われてしまいます。
こういう場合、どうすればよいでしょうか?

●質問者: westfish
●カテゴリ:コンピュータ
✍キーワード:JAR Java Maven アプリ クラス
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● t_shiono
●60ポイント

確認した訳ではないですが、以下の方法があるかと思っています。

・サードパーティライブラリの再構築

・出力jarファイルのMANIFESTの書き換え

・Mavenの設定でクラスパスの順序を指定(できるかどうか不明)

後者2つについては、ロードされるのはどちらか一方であったとしても、実行時に同一クラスの実体がクラスパス中に2つ存在してしまうので、将来的なことも含めると何かと問題になりそうです。

サードパーティライブラリの再構築であれば、現在の開発中に1度だけjarファイルを再構築するだけですみ、シンプルだと思うのですが、いかがでしょうか?

jarを一度解凍し、対象クラスファイルのみを修正したものに置換し、再度jarファイルにし、それを利用するということです。

◎質問者からの返答

やはりそういう形になりますか…

その場合、サードパーティが配布しているものに手を加えて配布することになるので

ライセンス的にOKなのかどうか検討する必要が出てきて面倒に思ったのでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ