【解決方法】intellij のアイデアでサンプルをコンパイル中にファイルと classnotfound エラーに署名する


こんにちは、みんな

私はJavaで書かれたターゲットアプリを持っています。
その関数の 1 つを呼び出したい。
Intellij Idea を使用しています。
その依存関係をインポートしました。
数行のコードを書きましたが、今まで 2 つの問題がありました。
1.私は得る:

Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

jar内の「META-INF/*.RSA」「META-INF/*.DSA」ファイルを削除して、この問題を手動で修正します。
この問題が発生する理由と、適切な方法で修正する方法を知りたいです。

2.依存関係の処理方法がわかりません。 たとえば、log4j を呼び出したい場合、「NoClassDefFoundError」例外が発生します。
コンパイルされたjarファイルにlog4jクラスを追加して解決し、修正しました。
明らかに依存関係が見つかりません。 -cp を試しても無駄です。

私が試したこと:

グーグル:
いくつかの ant/gradle スクリプトを見つけましたが、どこに置くべきかわかりません。
今のところ、コンパイラの jar ファイルを手動で変更して動作させるだけです。

解決策 1

1. での議論を参照してください。 https://stackoverflow.com/questions/34855649/invalid-signature-file-digest-for-manifest-main-attributes-exception-while-tryin[^].

2. log4j ライブラリは標準 Java ライブラリの一部ではないため、jar ファイルに含めるか、その場所を LD_LIBRARY_PATH 環境変数。 jvm は、実行時にそれを見つける場所を知る必要があります。

コメント

タイトルとURLをコピーしました