0

別のjarファイルから参照する必要のあるコマンドラインアプリケーションがありますが、このアプローチでは次のような結果になるため、既存のコードをコピーして、他のアプリケーションのソースファイルを含むプロジェクトに貼り付けます。保守性の問題。

私は次のことをすることを考えました:

  1. 2つのjarファイルをデプロイします。コマンドラインアプリをプロセスとして実行する(このアプローチの問題は、孤立したプロセスを処理したくないことです)。

  2. 2つのjarファイルをデプロイします。リフレクションを使用してコマンドラインアプリのmainメソッドを呼び出します。(これが良い考えかどうかはわかりません)。

  3. どういうわけか、コマンドラインアプリケーションのソースコードを含むプロジェクトを参照し、クラスファイルを他のアプリケーションのjarファイルにコピーするantファイルを記述します。

このアプローチのどれが最も理にかなっていますか?答えが#3の場合、必要なクラスファイルが新しいjarファイルに含まれるように、eclipseプロジェクトを設定したり、antファイルを書き込んだりする必要がありますか?

4

1 に答える 1

0

私の意見では、私はアプローチ 1 に傾倒しています。

コマンド ライン アプリケーションが Jar1 で、参照されるサード パーティの jar が JAR2 であるとします。JAR2 をクラスパスに追加するだけです。それでおしまい。Jar1 からすべての必要なクラスを呼び出すことができます。これはコマンドラインアプリケーションであり、孤立したプロセスを処理したくないため、それを処理する理想的な方法は、コマンドラインアプリケーションから処理して、最終ブロックから行うのと同様に、孤立したプロセスを強制終了することです。トライキャッチの。

問題が発生した場合にデバッグが非常に困難になるため、リフレクションは非常に推奨されていない/時代遅れであるため、アプローチ2に混乱しています

于 2013-02-18T06:08:08.620 に答える