MATLAB 内から 2 つの Java プログラムを実行しています。つまり、両方とも同じ JVM インスタンスを MATLAB と共有しています。Log4J は静的に構成されているため、これは Log4J を使用しようとすると問題になります。PROG1 を実行し (Log4J を構成)、次に PROG2 を実行すると (Log4J も構成しようとします)、PROG2 はその後、特定のバージョンの MATLAB でその出力を正しい場所に記録できません。
Eclipse で PROG1 のプロジェクトを構成して、Log4J の使用を永久に禁止したいのですが、PROG2 では引き続き許可する必要があります。PROG1 プロジェクトのクラスパスから log4j.jar を削除するだけでは問題は解決しません。直接的または間接的な依存関係として再度追加されるのを防ぐ方法がないからです。
理想的には、プロジェクトを構成して、Eclipse がコンパイル時に常にこれをチェックし、マーカー (既存のコンパイル警告とエラーなど) を追加し、Log4J アクセス (Log4J を構成するための独自のユーティリティ クラスを含む) にタグを付けることができればよいでしょう。 ) に、この問題を説明する簡単なメッセージが表示されます。
私が考えることができる次善の策は、Ant スクリプトをさらに複雑にすることですが、それでも、私または他の誰かが将来的に PROG1 プロジェクトに Log4J ロギングを追加し、かなりの金額を費やすまでその結果に気付かない可能性が残されています。時間と後でビルドを実行します。
特定のプロジェクトでLog4Jの使用を永久に禁止して、将来同じ問題から適切に保護する方法はありますか?