2017-06-26 12 views
-3

IDEを使用せず、Tomcatの展開されたwarファイルのエラーを修正しようとしていません。私は、パッケージのソースと誤った行を探ししようとしているパラメータを必要とするようだとの質問に続いてJAVAでは、インポートがどこから来ているかをどのように判断するのですか?

import com.somefirm.somepackage.someClass; 

ようないくつかのパッケージからインポートされましたが、私の質問に答えていなかったのです。

In eclipse determine which jar file a class is from

How can I find files imported in a java class

私はimportのソースを手動で見つけることができる方法はありますか?それは可能かどうか?クラスがインポートするパッケージをどのように探すか?

編集1:リンクを改行で区切ります。

編集2:「現時点ではIDEを使用していません」という質問が少し遅れました。最初の行にIDEを使用していないので、を追加しました。

編集3:なぜ私がそれを必要としているかについて、より明確に質問に答えました。

編集4:これらの編集を追加しました。 @ Jude-niroshanと@ErwinBolwidtのおかげです。

+2

ほとんどのIDEでは、import文の 'someClass'に' CTRL + click'を入力すると、IDEはそのクラスのソースをオープンします(ソースをデコンパイルしたものか、コード)。ディレクトリ構造とのクロスリファレンスを使用して、どのJARがこのクラスを提供しているかを確認できます。 –

+0

@TimBiegeleisen IDEを使用していません。 – Ayushya

+4

@AyushyaChitransh **あなたの質問の意味を変更して既存の回答とコメントを無効にすることは本当に**迷惑となります** –

答えて

3

ポイントは次のとおりです。クラスの正確な位置は、クラスパス設定によって決まります。

は、アプリケーションをコンパイルする際に、どのクラスを使用できるかをある時点で定義しています。

したがって、ideを使用していないときは、ビルドに適用されるクラスパスの「要素」を検索する必要があります。例えば、それぞれのjarファイルを調べることで可能です。

ご意見をお寄せください:私はあなたが後退しなければならないと思います。あなたは、Javaの知識がの基本不足しているようです。 WARファイルが構築されている方法を理解するにはを理解する必要があります。 があります。種類のビルド説明です。 依存関係とWAR配信の他の内容が含まれています。あなたはそれらを分析する必要があります。それを超えて:これらのパッケージがあなたのチーム/会社/のものであれば、単純なファイル検索がその仕事をするかもしれません。それらのパッケージがオープンソースライブラリのように "外部"の場合は、クラス名のために単純なgoogleを試してみてください。 grepcode.comにアクセスしてください。クラスには、完全に修飾クラス名のみが含まれています。コンパイルクラスには、完全修飾クラス名が含まれています。これ以上クラスファイルにインポートステートメントがありません。したがって、あるクラスが別のクラスを「必要とする」とき、そのクラスをロードするようにJVMに要求します(完全修飾名を指定)。そして、JVMは単にクラスパスを調べて、与えられた名前と一致する最初のクラスをロードします。

+0

これは、_class path_が定義されている "要素"のjarファイルを調べなければならないことを意味します。 jarファイルは、warファイルを作成するために使用されたファイルを参照していますか? warファイルが展開されたときに作成されたフォルダにこれらのファイルが見つかりませんか? – Ayushya

+2

更新を見るしかし、私の直感は、あなたが真剣に**いくつかの学習を最初にしなければならないということです。 Javaの知識が制限されているため、問題解決方法を説明することができません。 – GhostCat

+0

@AyushyaChitranshコンパイルされたクラス内のインポートに関する別の小さなアップデートがあります。 – GhostCat

0

IDEを使用していません。 Have a look at the importance of using an IDE?

正確なソースコードを見る必要がある場合は、その特定のjarファイルのプロジェクトが必要です。jarファイル、warファイルのようなコンパイル済みのJava解釈のみを取得した場合は、Java Decompilerを使用する必要があります。

Decompilerは、そのクラスの作成者が書いた正確なソースコードを提供しませんが、非常によく似たソースコードをスケッチします。 逆コンパイルはリバースエンジニアリングであることに注意してください。これは、JRE(Java Runtime Environment)がコンパイルされたJavaの解釈を使用しているため、エラーのある場所を特定するのに役立ちます。

特定のクラスjarファイルを見つけるには、you can search on the maven central repositoryが最大のJavaリポジトリに存在することを期待してください。そうでなければ、インターネット上でそれを見つけることに幸運。 :-)