2016-10-09 5 views
2

特定のJavaソースコードファイルに対して、(直接)コンパイルに必要なすべての(完全修飾名)クラスをリストしたいと思います。言い換えれば、ソースコードファイル内のコードによって直接使用される、インポートから来るすべてのクラス、ソースコード内の完全修飾名、およびその他のコンパイル時の意味ですが、リフレクションまたはその他の実行時手段によるものではありません。Javaソースファイル - >コンパイルに必要なクラスのリスト

このリストのJavaコンパイラに「尋ねる」方法はありますか?それを得る他の方法はありますか?

PS:ソースコードファイルにクラスBを使用するコンパイルにクラスAが必要な場合は、コードをコンパイルするためにクラスBが存在する必要がありますが、直接使用するわけではありません。

+0

理論的には、クラス「A」のソースコードを他のクラスから分離してコンパイルを試みることができます。 jdkに含まれていないクラスが見つからなかった場合のすべてのエラーメッセージが表示されます。必要なクラスをソースツリーにコピーし、欠けているクラスに関連するエラーがなくなるまでコンパイルします。完全なソースコードが必要であり、 'java。*'クラスを受け取らないことに留意してください。そして、おそらく時間がかかります – msrd0

答えて

0

あなたはthisを試すことができます。

ことなどを容易に作だけのjavacで行うことができます。クラスファイルを削除し、メインクラスをコンパイルします。 javacは必要とする任意のクラスを再帰的にコンパイルします(パッケージのプライベートクラスやインタフェースを変な名前のファイルに隠さない限り)。

+0

あなたはどのようにすべての必要なクラスを見つけるために技術を適用する具体的なことができますか?必要なクラスは他のソースコードファイルには存在しないかもしれませんが、他のjarファイルから来るかもしれません。 –

+0

申し訳ありませんが、私はあなたの問題を解決しないことを認識しています。1.あなたが言及した、すでにコンパイルされた依存関係があります。2.直接の依存関係のみを必要とします。 – mm759

関連する問題