14

プロジェクト「A」があり、別のプロジェクト「B」からクラス「c」を呼び出す必要があります。

私は次のことをしました。"A" --> プロパティ --> ビルド パス --> をクリックし、Java ソースの 1 つのタブで、プロジェクト B を選択しました。 --> 受け入れる

クラス "c" のオブジェクトを作成できるようになりましたが、プロジェクトを実行すると "ClassNotFoundException" が発生します。

アップデート、

java.lang.ClassNotFoundException が発生し続けます。

"JSF" --> プロパティ --> ビルド パス --> プロジェクト ---> プロジェクトを追加しました:

ここに画像の説明を入力

実行 --> 実行構成 --> ClassPath 私が持っていた:

ここに画像の説明を入力

そして今、プロジェクト「JIRA」と「JIRA依存関係」を追加しました ここに画像の説明を入力

JIRA プロジェクトには次の依存関係があります。

ここに画像の説明を入力

そして、次のエラーが表示されます。

ここに画像の説明を入力

しかし、このクラスは M2_REPO にあります:

ここに画像の説明を入力

解決

Maven なしで JAR にのみ「JIRA 依存関係」を追加し ここに画像の説明を入力 ます。これで実行されます。

4

7 に答える 7

14

「プロジェクト」タブで別のプロジェクトを追加するか、「ライブラリ」タブでプロジェクトのクラスフォルダーを追加する必要があります。

例

于 2012-08-03T09:24:27.007 に答える
11

プロジェクト A が使用する実行構成にプロジェクト B を追加する必要があります。メニューの [実行] -> [実行構成...] で、実行構成の「クラスパス」タブにプロジェクト B を追加します。

于 2012-08-03T09:21:22.387 に答える
7

プロジェクト B をビルド パスに配置し、[プロジェクト メニュー] オプションからクリーン プロジェクトを実行してから、それを使用します。

-

Click in "A" -->Properties -->Build Path --> Projects ---> Add the Project --->Ok
于 2012-08-03T09:24:17.053 に答える
2

Java でクラスからメソッドを呼び出すには、まずクラスのインスタンスが必要です。

したがって、コードでは、次のようなことを行う必要があります。

  1. インスタンスの取得:

    MyClass instanceOfMyClass = MyClass.getInstance();

  2. メソッドの呼び出し:

    instanceOfMyClass.someFunction(...);

つまり、getInstance() を呼び出すと、そのようなインスタンスが既に存在する場合は MyClass のインスタンスが返され、インスタンスがない場合は新しいインスタンスが作成されます。クラスのインスタンスを取得した後、適切なアクセス修飾子があれば、そのメソッドを呼び出すだけです。

Java doc java.lang.classNotFoundException によると、次の場合に発生します。

  1. MyClass.someMethod() メソッドを使用してクラスをロードしようとしたときに、MyClass がクラスパスで使用できない場合。
  2. Classloader が findSystemClass() メソッドを使用してクラスをロードしようとした場合。
  3. Java でクラス ClassLoader の loadClass() メソッドを使用している場合。

上記の例外を解決するには、次のことを行う必要があります。

  1. 最初に、問題のあるクラス ファイルが存在する jar ファイルを見つけます。たとえば、"com.mysql.jdbc.driver" の mysql-connector-java.jar の場合です。特定のクラスのjarファイルを見つける方法がわからない場合は、Eclipseで「Ctrl + T」を実行してクラスの名前を入力するだけで、Eclipseクラスパスに表示される順序ですべてのjarがリストされます。

  2. クラスパスにそのjarが含まれているかどうかを確認してください。クラスパスにjarが含まれていない場合は、クラスパスにそのクラスを追加してください。

  3. クラスパスに存在する場合、クラスパスがオーバーライドされているか、アプリケーションがjarファイルまたは起動スクリプトで指定されたクラスパスを使用している可能性が高く、修正するには、アプリケーションで使用される正確なクラスパスを見つける必要があります.

于 2012-08-03T09:27:36.473 に答える
0

プロジェクト「A」をjarとして作成し、このjarをプロジェクト「B」ビルドパスに追加します。その後、必要なクラスを呼び出して、そのクラスパッケージ名をcalss名でインポートできます。

于 2016-02-22T14:11:44.900 に答える
0

B が同じワークスペースにあり、開いている場合は、「ソース」ではなく「プロジェクト」に int を配置する必要があります。A を「より」独立させたい場合は、B.jar をエクスポートして「ライブラリ」に追加する必要があります。

于 2012-08-03T09:21:51.903 に答える
0

mavenの使用も検討してください。マルチモジュール プロジェクトを使用している場合に非常に便利です。別のプロジェクトの依存関係を追加するだけで、maven が残りを処理します..!

于 2012-08-03T10:05:42.070 に答える