1

既存のソリューションをいくつか試しましたが、うまくいきません。

First.java (メインが定義されている) と Second.java の 2 つのファイル/クラスがあり、単純な関数が定義されています。

**First.java:**

import java.util.*;

public class First 
{
    public static void main(String[] args) 
    {   
        Second s1 = new Second();
        s1.Hello(); 
    }
}

上記のコードをEclipseでデバッグすると、行に「ソースが見つかりません」というエラーが表示されますSecond s1 = new Second();

ただし、「ステップイン」をクリックすると、このエラーが発生します。前述の行で「ステップオーバー」をクリックすると、エラーは発生しません。その後のステップで「ステップイン」をクリックすると、エラーは再び発生せず、実行は 2 番目のファイル「Second.java」に正常に入力されます。

だから私の質問は、「Second.java」のコンストラクターをステップオーバーせずに入力できる方法はありますか?

ソースパスの設定方法。

Second.java クラス:

public class Second 
{
    int a;
    public Second()
    {
        this.a=100;
    }

     public void Hello()
     {
         System.out.println("hello how are you");
     }

     public int GetResult()
     {
        return a; 
     }


}
4

2 に答える 2

1

問題は、Second オブジェクトが作成されたときにその行に「ステップ イン」すると、クラスローダに Second クラスをロードするように要求することです。Java ソースの場所を指すように Eclipse をセットアップしていない可能性があるため、Eclipse は、VM がクラスをロードするために使用するすべてのファイル (java.lang.ClassLoader を含む) について、マシン上の Java ソース コードがどこにあるかを認識していません。そしてEclipseは「ソースが見つかりません」ページを表示します。

あなたはできる:

  1. ブレーク ポイントを First.java の行からSecond s1 = new Second();Second.java にpublic Second()移動します。その後、デバッグするときに、Second オブジェクトが VM によって読み込まれた後にブレーク ポイントにヒットする必要があり、インスタンス化されているコンストラクターをデバッグできるはずです。
  2. 行のブレークポイントに「ステップイン」しSecond s1 = new Second();てソースが見つからないページを取得したら、すぐに「ステップリターン」してからもう一度「ステップイン」を押すと、Second クラスのコンストラクターに移動します。
  3. ソースの添付をクリックし、Java ソース ファイルのディレクトリを参照します。これらは通常、JDK のダウンロードに含まれており、VM (Sun VM の場合) のインストール フォルダーにある src.zip というファイルにあります。
于 2012-05-19T03:57:05.130 に答える
0

ソースが見つからないということは、通常、Eclipse が必要なファイルを見つけられないことを意味します。プロジェクトに Second.java はありますか? 一番良いのは me.russjr08.projects のようなパッケージを作ることです。そうすれば、Eclipse はパッケージを検索して (すべての正しいファイルがそこにあると仮定して)、使用したいクラス / Java ファイルを見つけることができます。

IIRC 別の解決策は、Second.java を src フォルダーに含めることです。

于 2012-05-19T04:08:06.740 に答える