Eclipse「エラー:メインクラスが見つからないか、ロードできませんでした」


108

私のラップトップでEclipseにあるプロジェクトをGitにプッシュしましたhttps://github.com/chrisbramm/LastFM-History-Graph.git

それは私のラップトップで完全に動作し、問題なく実行/ビルドしますが、私のデスクトップではEclipseはエラーを表示しません

エラー:メインクラスlastfmhistoryguis.InputPanelを検索またはロードできませんでした

私はからプロジェクトを構築しようとしました:

Project>Build Project

しかし、何も起こりませんでした。PATHこのコンピューターの変数をJRE6、JRE7、およびJDK 1.7.0に設定しましたが、これらは私のラップトップでは設定されていません。

私は、Jarファイル(持っていなかったlast.fmバインディング-0.1.1.jar私の中にあった).classpathにあったファイル\ Users \ユーザークリス\ダウンロード:C、それがどのIのgitツリーに含まれていなかったので、私のラップトップ上のフォルダを最近プロジェクトフォルダに入れてコミットしましたが、正しく実行したかどうかはわかりません。これも問題の原因になりますが、そこには主な議論はありません。

私は今、ワークアウトできません。チェック/変更する必要があります。


24
プロジェクト>クリーンとプロジェクト>ビルドプロジェクトを試しましたか?
javaCity 2012年

3
複数回、うまくいかなかったようです
Chris


システム環境クラスパスには次が含まれます。他にどこを変更する必要がありますか?具体的には何をしますか?
Chris

私の場合java .\bin\selenium-server-standalone-3.9.1.jar、あるべき時に走っていましたjava -jar .\bin\selenium-server-standalone-3.9.1.jar
Coty Embry 2018年

回答:


40

クラスパスでは絶対パスを使用していますが、ファイル構造がまったく異なる可能性のある新しいマシンにプロジェクトを移動しました。

したがって、クラスパスでは(おそらく、一般的にJARSをプロジェクトにバンドルする場合は)相対パスを使用する必要があります。

.classpathの変更

<classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/><classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/>

<classpathentry kind="lib" path="last.fm-bindings-0.1.1.jar"/>

19
これをどのように変更しますか?
Aequitas、2015年

外部jarファイルはありませんが、同様の問題に直面しています。stackoverflow.com/questions/49738153/...
ジェシー

@Aequitasは、「実行」->「実行」->「Javaアプリケーション」を実行します。クラスパスを自動的に設定します。Blamkin86の回答を参照してください。クラスパス設定は、「実行」->「実行構成...」にあります。
2018年

72

を使用してJavaクラスを作成する場合public static void main(String[] args)、Eclipseはファイル自体を右クリックするか、プロジェクトエクスプローラーのファイルを右クリックして、次のように選択することにより、メインメソッドを実行します。

「実行」->「Javaアプリケーション」

これを行うと、Eclipseはクラスに関する情報を保存するので、「実行」メニュー(ツールバーの緑色の再生ボタン)または「構成を実行」ダイアログからクラスを簡単に再実行できます。

その後、Javaクラスを(手動で、またはその他の方法で)移動する場合は、再度選択します。

「実行」->「Javaアプリケーション」

新しい場所から、Eclipseは元の格納された構成を実行し、元の場所からこのクラスを呼び出そうとするため、このエラーが発生します。


解決策:
私にとって、修正は実行構成に移動し(緑色の再生ボタン->実行構成)、クラスへのすべての参照を削除することでした。次に実行するとき

「実行」->「Javaアプリケーション」

Eclipseは、移動されたクラスの新しい構成を書き込み、エラーはなくなります。


2
ありがとう.. !! これは私のために働いた。問題は、プロジェクトの名前を変更したときに始まりました。
NixRam 2014

+1 public static void main(String[] args)は私を獲得したものです。誤って(のMain代わりにmain)署名が間違っていました。したがって、署名が正しいことを確認することが重要です。:)
Nicholas Miller、

10
「クラスへのすべての参照を削除」するにはどうすればよいですか?
aCarella 2016年

2
魅力のように働いた。私の問題は、プロジェクトに関連付けられているデフォルトの名前を変更するbuild.gradleとsettings.gradleを作成したことです。参照の削除(実行->実行構成->プロジェクトに関連付けられたすべての構成を削除)
randombee

1
「クラスへのすべての参照を削除」-すべての実行構成を削除しますか?
jcool

55

tl; drビルドパス全体と、これまで手動で追加したすべてをクリーンアップします。これには、追加のソース、プロジェクト、ライブラリが含まれます。

  • プロジェクト->クリーン
  • プロジェクト->自動的にビルドがアクティブであることを確認してください
  • プロジェクト->プロパティ-> Javaビルドパス->ライブラリ:これまでに追加した外部ライブラリをすべて削除します。JREシステムライブラリなどの標準ライブラリを削除しないでください。
  • 今すぐメインクラスを実行してみてください。「クラスが見つかりませんでした/ロードできませんでした」というエラーはなくなります。外部libs / jarを1つずつ追加してみてください。

この理由:コンパイラーがライブラリーをプロジェクトにリンクするときに問題が発生しました。失敗し、誤ったエラーメッセージが生成されました。

私の場合、それは「AutoHotkey.dllをビルドパスに追加できませんでした」のようなものであったはずです。それがコンパイラを失敗させた理由です。


これでも機能しない場合は、Eclipseの組み込みErrorLogを確認してください。

ウィンドウ->ビューの表示->一般->エラーログ


26

私は上記のすべてを行いましたが、どれも私のために働いていませんでした

私の問題は次のように解決されました:

  1. プロジェクト>プロパティ> JavaBuildPath>ライブラリを右クリックします。
  2. 赤い旗が付いているjarファイルを削除します。
  3. 問題が解決しない場合は、以下の解決策を試してください。これは私がこの問題に2回目に直面したときにうまくいきました:
    1. プロジェクトを右クリック>プロパティ> Javaビルドパス>ライブラリ
    2. ライブラリを削除
    3. ライブラリを追加します。(JREシステムライブラリを選択)

私のために働いた!Projectフォルダ名の横にも感嘆符がありました。これによっても修正されました
ベンザビル

私のために働いた!ありがとう
Dhruv Kaushal

1
これは、同じJava JREライブラリを削除して再度追加するだけで機能しました
Andrew Norman

それは何の警告も感嘆符がなかったにもかかわらず、私のために働いた
のMichałレオン

文字通り、あなたは私のAP Javaプロジェクトを文字通り保存しただけで、本当に感謝しているわけではありません
Rohan Singh

18

私はほぼ1時間を費やした後、私のmaven webappプロジェクトで同様の問題に直面しました、私のために働く解決策を見つけました。私は次のmavenコマンドを入力し、それはうまくいきました

mvn clean install -U
私はその背後にある正確な理由がわかりません。


1
私にも同じことが言えます-そもそもなぜこれが起こったのかわかりません
nsof 2015

日食では、を右クリックしてRun As..Maven cleanRun As..Maven installそれを私のために行いました。この問題は、Eclipse JavaプロジェクトをEclipse Mavenプロジェクトに変更したときに始まりました。右方向を指す場合は+1。
CodeMed 2015年

-U、
-update

9

プロジェクトをデスクトップのEclipseインストールにインポートしたと思いますか?その場合は、[プロジェクト]> [クリーン]を選択するだけです。次に、プロジェクトを再構築します。私にとっては魅力のように働きました。


9

私は同じ問題を抱えていて、それを使ってそれを解決しました:

Eclipse Mars
Egit
Github
Maven Project

問題は、Mavenプロジェクトをgithubで利用できるようにしたことです。私のプロジェクトをgithubフォルダーに移動しました

解決:

  • Eclipseを閉じる
  • ワークスペース内のメタデータフォルダーを削除する
  • Eclipseを再起動します

スタート画面が表示されます。

  • スタート画面を閉じる
  • パッケージエクスプローラーを右クリック
  • 「インポートmavenプロジェクト」を選択し、
  • githubフォルダーに移動し、mavenプロジェクトをインポートします。

この後、私のプロジェクトは成功しました。


7

次のいずれかの方法で、プロジェクトにビルダーがあることを確認します。

  • プロジェクトのプロパティを確認します(「パッケージエクスプローラー」でプロジェクトを右クリックし、「プロパティ」を選択します)。2番目のセクションは「ビルダー」で、デフォルトの「Javaビルダー」を保持する必要があります。
  • または、「。project」ファイル(... / workspace / yourProjectName / .project内)を見て、セクション「buildSpec」を空にすることはできません。

他の方法もあるに違いないが、私がしたことは:

  • 日食をシャットダウンする
  • 。 "project"ファイルを編集して、 "buildSpec"セクションを追加します。
  • 日食を再開する

適切な最小限のjava ".project"ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>myProjectName</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.jdt.core.javabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>       
                    <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>      
</projectDescription>

1
これで解決しました。.projectファイルを変更するためにEclipseをシャットダウンする必要はありません。プロジェクトを閉じるだけです。
ルイス・デ・スーザ

私は、他の一方で、単にEclipseの運転停止(ただし、編集しませんでした.projectファイルをバックにEclipseを回したし、それが働いた:エラーが消えていた。。
シャハル

6

次はうまくいきました...

  1. プロジェクトフォルダーに移動しました(内部workspace
  2. 次に、binフォルダを削除しました
  3. 次に、クリーンアップされたプロジェクト(Eclipse内)
  4. Eclipseからビルド/実行。

ディーコッド、SOへようこそ。binフォルダーを削除し、「プロジェクト>クリーン」およびビルドを実行することは、他の回答ですでに提案されています。「私も」という回答を投稿するのではなく、コメントを投稿するのに十分な評判(50だけで十分)を得て、コメントで特定のアプローチが機能することを確認することをお勧めします。
Amos M. Carpenter

1
アモス、ありがとう!とにかく、私が見ている限り、私が間違っているとすみません->クリーン/再構築の前にビンを削除することは、このスレッドの他の回答では提案されていません...ただクリーン>ビルドは私のシナリオでは機能しませんでした...誰かを助けます:)
DeeCode

心配する必要はありません-奇妙なことを組み合わせて試しても、明らかな理由もなく突然機能するシナリオはたくさんあります。;-)
Amos M. Carpenter

4

同様のことが何度か私にも起こりました。これを修正する唯一の方法は、メタデータフォルダーを削除することでした。幸い、私は別の方法を見つけました。

プロジェクトのプロパティ> [Javaビルドパス]> [順序とエクスポート]タブに移動して、すべてを選択してみてください(または、チェックボックスを操作してみてください)。

これにより、プロジェクトが完全に再構築され、Eclipseがメインクラスを表示します。

追加:このバグは、ワークスペースに多くのプロジェクトがあり、それらのいくつかが正しく構成されていない場合に発生することに気付きました(赤い感嘆符が表示されます)。プロジェクトのビルドパスとその他の設定を修正すると(このプロジェクトが問題のあるプロジェクトと関連していない場合でも)、問題が修正されます。


4

Main classが見つからなかったか、ロードされた問題は、興味深い理由が原因です。

私たちのプロジェクトでは、私はMavenビルドツールとして使用しています。私main class extendsのクラスはにありますclass pathが、そのスコープはでしたがtestmain classはテストパッケージの下にありません。

メインクラスextendsがクラスの場合、最初に一部main classを削除して実行してみてくださいextends。それが実行された場合、あなたは少なくとも問題が原因ではないことを理解するであろうrun configurationか、eclipseあなたが、クラスmain class extends


4

私にとって、このエラーが表示され始めたのは、クラスパスがウィンドウの制限を超えたためです。その後、「一時JARを使用してクラスパスを指定する(クラスパスの長さの制限を回避するため)」というオプションを発見しました。このオプションを選択すると、問題が解決しました。このオプションは、[実行/デバッグ構成]の[クラスパス]タブにあります。下の画像を参照してください。

ここに画像の説明を入力してください


3

この問題は、ワークスペースパスに特殊文字がある場合にも発生します。私のワークスペースは個人用フォルダーにあり、その名前はギリシャ語であったため、機能しませんでした。ワークスペースを変更しました。パスに英語の文字のみが含まれるようになり、プロジェクトは問題なくビルドされました。


3

日食を使用している場合は、次の手順で問題を解決できます。

実行->実行構成->メインクラス検索->クラスを手動で検索->適用->実行に移動します。


3

このエラーが発生しました。static void main(String[] args)
代わりに持っていたから です public static void main(String[] args)

私はそれを理解しようと一時間近く費やしました。

注:唯一の違いは、私が宣言mainしなかったことです。public


3

コードに問題がなく、Eclipseに問題があることがわかっている場合は、これで解決します。

$ yourproject / .classpath、$ yourproject / .project、および$ yourworkspace / .metadataを削除するだけです。他の誰かがこのオプションについて言及しました。ただし、ワークスペース全体が爆破されます。代わりに:

  1. プロジェクトから.classpathと.projectを削除します
  2. 日食でプロジェクトを削除します。チェックしないでくださいディスク上のプロジェクトの削除内容を。
  3. 次に、ファイルエクスプローラーで、$ yourworkspace / .metadataに移動します。
  4. $ yourprojectnameを検索します
  5. 見つかったものをすべて削除します。.metadataディレクトリにあるものはすべて削除しても安全です。
  6. 日食:ファイル>インポート>一般>フォルダまたはアーカイブからのプロジェクト> $ yourproject>終了
  7. プロジェクトを右クリック>プロパティ> Javaビルドパス>ソースタブ
  8. すべてのソースフォルダを選択して削除します。
  9. フォルダーを追加し、src(srcフォルダーが何であれ)を選択して追加します
  10. [ライブラリ]タブに移動
  11. ここで、jarをビルドパスに追加します。これで、プロジェクトにエラーはなくなります。
  12. 通常どおりにプロジェクトを実行します。

とファイルを別のプロジェクトのファイルで上書きしましたが.classpath.projectうまくいきました...偶然の一致か、クラスパスが本当に重要なのですか?
AmarthGûlJan

これらのファイルはプロジェクトに固有であるため、おそらく偶然です。エラーを導入することで、知らないうちにEclipseでこれらのファイルを再生成した可能性があります。ファイルを開いて読むと、ファイルの内容がわかります。クラスパスは、LIBSとSRCフォルダのディレクトリと.project店舗のプラグインやプロジェクトファセットのものが含まれている
ブレント・サンドストローム

3

jreにインポートした場合、これによりjdkライブラリが発生する可能性があります。

これは私に起こりますので、インストールされているjre jarを確認してください

EclipseでWindows> Preferences> Java> Installed Jresをクリックし、Jreをクリックして編集し、jarリストを調べて、jdkや破損がないことを確認します。 ここに画像の説明を入力してください


2

私は同じ問題に遭遇しましたが、私の場合、ソースフォルダーが欠落している(空の)ために発生しました(元のプロジェクトには存在しますが、空のためGITリポジトリには存在しません)。

不足しているフォルダを作成した後、すべてが機能します。


2

一部のリソースを移動した直後にも、このエラーを受け取りました。エラーログを確認すると、ファイル/フォルダーを削除できないため、Eclipseがビルドを作成できないことがわかりました。「bin」(または、それが呼び出されたもの)フォルダを手動で削除してみてください。

少なくとも私にとってはそれでうまくいった。


うん。プロジェクトをgitに移動した後。問題が発生。私はこれを試し、トリックを行うために「プロジェクトを閉じる」と「プロジェクトを開く」ことも必要です。
Yeung

2

Hello Worldプログラムをセットアップしてから、新しいプログラムを切り取って同じファイルに貼り付けたので、今日このエラーに遭遇しました。最後に呼び出されたときにHello Worldが見つからないという問題を解決するには、[実行]-> [実行構成]をクリックし、[メインクラス]で[検索]をクリックして、新しいクラス名を見つけ、貼り付けたテキストで正しい新しい名前に置き換えました。 。これは私が知っている初心者の問題ですが、修正も簡単です。これが誰かに役立つことを願っています!ダグラス


2

私は正しい.classpathファイルで同じ問題を抱えていましたが、すぐに実際には.classpathファイルがカウントされていないことがわかりました(この問題を修正した後、実行可能な.classpathファイルを元のファイルに置き換えても、プロジェクトは引き続き機能し、つまり。クラスパスファイルはそうではありませんでした)

これはMavenプロジェクトなので、私がしたことは次のとおりです。

  1. mvn eclipse:clean
  2. 日食プロジェクトを削除する
  3. プロジェクトをインポートする
  4. できた

それが役に立てば幸い!


2

Eclipseが.classファイルをクリーンアップしますが、再度ビルドしないため、ほとんどの場合これが発生します。binフォルダを確認してください。空である必要があります。次に、ビルドtiの失敗の原因となっている他の何かがあるかどうかを確認する必要があります。Eclipseが見つけられない可能性のあるいくつかのjarをクラスパスに追加した可能性があります。


2

Package Explorerに移動してF5キーを押すか、一部のラップトップの場合はfn + F5キーを押します。その理由は、Eclipseはファイルがどこかにあると見なしますが、ファイルは実際には別の場所にあるためです。更新することで、両方を同じページに配置します。心配しないでください。何も失うことはありませんが、特に注意したい場合は、Javaプロジェクトフォルダから安全な場所にファイルをバックアップしてください。


これでうまくいきました。新しいバージョンのEclipseにアップグレードした後、問題が発生しました。それはgradleプロジェクトであり、gradle clean eclipseは問題を解決しませんでした。単純な更新を行いました。
dnuttle 2018年

2

これらは、この問題を解決するのに役立つ簡単な手順です。

  1. 日食を閉じます
  2. ワークスペースの「.metadata」フォルダーを削除します。(隠しフォルダーの可能性があります)
  3. Eclipseを開きます(ワークスペースに「.metadata」フォルダーが自動的に作成されます)
  4. プログラムを実行してみてください。

これにより、プロジェクトがワークスペースからバインド解除されます。すべてのプロジェクトをもう一度インポートする必要があります!
Muhammad Gelbana 2015年

@MuhammadGelbanaに同意します。.metadataを削除すると、ワークスペースが破壊されました。このソリューションを試すときは、十分に注意してください。
TYMG 2017

2

このエラーを解決するには、次の手順を実行します。

手順1:.projectファイルを開きます。

ステップ2:2つのタグを確認する...

    a) <buildSpec>

    b) <natures>

ステップ3:上記のタグにコンテンツが含まれていない場合、上記のエラーが確実に発生します。

手順4:上記のエラーを解決するには、各タグに次のコンテンツを追加します。

の場合<buildSpec>

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

の場合<natures>

<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

ステップ5:ctrl + sを押してファイルを保存します。

ステップ6:安全のために、プロジェクトを一度閉じて再度開きます。

ステップ7:以上です。あなたはロックする準備ができています!!!

解決策が役に立ったかどうかコメントで述べてください。

ありがとうございました。


2

ワークスペースのエラーログを確認します(Windows-> View View-> Error log)。インポートされたjarのいずれかが破損している場合は、対応するリポジトリフォルダーを削除して、再度インポートします。


2

2つのタイプのソリューションが同じように存在します。

(1)実行構成に移動します。-実行->実行構成[クラスパス]タブ:

Eclipseが通常プロジェクトの* .classを置く場所である[詳細追加]を選択します。これはbinにあります。そこで、プロジェクトのbinディレクトリを追加しました。

(2)最初のソリューションが機能しない場合は、プロジェクトに指摘しているjarが、プロジェクトに更新されていないローカルのMavenリポジトリのパスを使用しているため、ローカルのmavenリポジトリからjarを確認し、コピーして新しいプロジェクトに貼り付けるか、任意のサイトからダウンロードしてビルドパスに構成します。

お役に立てば幸いです。


1

私も同じ問題を抱えていました。数時間を費やして、最後にワークスペースをローカルフォルダーに戻し、すべてが今動作します。たぶん他の人のためにいくつかの時間を節約できます。ジョン


1

JAVA_HOMEを何に設定してもWindows 8がパスの更新を拒否するという問題が発生した後、この問題が発生しました-java -versionが、JAVA_HOMEに保存したJDKではなく、最後のJDKを報告しました。私はようやく '%JAVA_HOME%/ bin;'を置くことでそれを動作させました。末尾ではなく、パス環境変数の先頭。それから私はEclipseを起動しましたが、これまでは正常に機能していましたが、突然メインクラスを見つけることができませんでした。私が修正したことは、プロジェクトのプロパティに入り、ライブラリタブから既存のJREライブラリを削除し、[ライブラリを追加]ボタンを選択して新しいJREを追加し、プロンプトに従ってJRE 7をデフォルトのJREとしてインストールしました。これですべてが正常に機能するようになりました。


1

私の場合、この問題に他の解決策が見つかりました:Eclipse->Preferences->Java->Installed JRE検索ボタンを押します。Linuxでフォルダーを選択すると/usr、EclipseがすべてのJVMを検出しました。

最新の別のJVMを選択してください。私の場合は解決されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.