エディターにメインタイプが含まれていません


92

ScalaのWebサイトにあるサンプルのScalaコードを試してみましたが、実行しようとすると迷惑なエラーが発生しました。

これがコードです:http : //www.scala-lang.org/node/45。Eclipseで実行すると、「エディターにメインタイプが含まれていません」というメッセージが表示され、実行できません。

私がする必要があることはありますか...つまり、そのファイルを複数のファイルに分割しますか?

回答:


37

私はEclipseとScalaでこの問題をたくさん抱えています。ワークスペースをクリーンアップしてプロジェクトを再構築すると役立ちます。

Eclipseは、再コンパイルする必要があるファイルを正しく認識しないことがあります:(

編集:コードはEclipseで正常に実行されます


4
同じ経験をしました。さらに、プロジェクトを閉じたり開いたりする必要があるように思えることもありました。
Fabian Steeg、

@nuriaionと@Fabianに感謝します。はい、プロジェクトを再開すると機能します。ヒントをありがとうございます。
Helen Neely、

3
@Helen Eclipseでは=>プロジェクト=>クリーンプロジェクトをクリーンアップできます。再構築は自動的に実行されます...したがって、プロジェクトを閉じて再度開く必要はありません。
nuriaion 2009

Scalaプロジェクトを開いたり閉じたりすると、ビルド中にエラーが発生しました。ビルダー 'ch.epfl.lamp.sdt.core.scalabuilder'のインスタンス化中にエラーが発生しました。プラグイン「ch.epfl.lamp.sdt.core」は、クラス「scala.tools.eclipse.Builder」をインスタンス化できませんでした。クラスscala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilderプラグインを初期化できませんでした "ch.epfl.lamp.sdt.core"はクラス "scala.tools.eclipse.Builder"をインスタンス化できませんでした。クラスscala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilderを初期化できませんでした
Ustaman Sangat

87

Eclipseでは、プロジェクトのプロパティ-> Javaビルドパス->ソースにソースフォルダーを追加してください。そうしないと、main()関数がプロジェクトに含まれない可能性があります。


これは、ファイルをフォルダエクスプローラビューの "src"にドラッグアンドドロップすることでも実行できることに注意してください。
マックスフォンヒッペル

これは私の問題を解決しましたが、プロジェクトを閉じて開いた後。
2018年

26

.javaファイル Eclipseの.srcフォルダーにあることを確認する必要があります。それが理解されるまで、私はまったく同じ問題を抱えていました。


26

より簡単な方法は、プロジェクトを閉じて再度開くことです。


21

作業するフォルダがビルドされたパスに追加されていることを確認してください:

right-click あなたのフォルダ-> build Path ->Use as source Folder

そしてそれは今mainそこにあるはずです。


6

私も同じ問題を抱えていました。いろいろなことを試しました。そしてそれを知った

  1. .javaファイルがリンクされておらず、
  2. それらは「src」フォルダに配置されませんでした。

私がしたこと:

プロジェクトのプロパティ>> Javaビルドパス>>ソース

  • 「削除」オプションを使用して空だった元の「src」フォルダを削除しました
  • 「フォルダーの追加」オプションを使用して、ソースの.javaファイルを含むソースを追加しました

これでエラーが解決しました。


5

あなたは日食のアウトラインサイドバーからメイン機能を実行しようとすることができます。

解決


これを行うと、エラーメッセージが表示されました<project root> [in Tut_RMI] does not exit。(プロジェクト名はTut_RMI)このプロジェクト名は無効ですか?
キャスパー

5
***

閉じてもう一度開く

*** Eclipseでのプロジェクト。時々リンケージの問題があります。これは私の問題を解決しました


3

簡単な解決策:

まず、パッケージを除外します。ソースパッケージを右クリック>>ビルドパス>>除外

次に、それを元に戻します:ソースパッケージを右クリック>>ビルドパス>>含める


3

あなたがすべきことは、Javaプロジェクトを作成することですが、このファイルをそのプロジェクトのパッケージファイルに入れてください。そうしないと、同じエラーが発生します。

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


2

そのコードは有効です。scalacを使用して手動でコンパイルしようとしましたか?また、オブジェクトの名前のように、ファイルをすべて小文字で「アドレス帳」と呼びましたか?

また、Eclipseが何らかの理由でメインクラスを「addressbook」ではなく「.addressbook」に設定していることもわかりました。


ダニエルに感謝します。そうです、ファイルの名前はすべて小文字です。プロジェクトを再開して、それが役立つかどうかを確認します。
Helen Neely

2

あなたはあなたのファイルを作成する必要があります

右側を選択すると、ファイル名が表示されます。

その下でsrcフォルダーが見つかります。右クリックして、選択->クラスオプションを選択します。

あなたのファイルを作成する必要があります


2

.javaファイルがstrパッケージまたは他のパッケージにあることを確認してください。main関数を含むjavaファイルがすべてのパッケージの外にある場合、このエラーがスローされます。


2

同様の問題に直面し、アウトラインビューでメインメソッドを右クリックしてJavaアプリケーションとして実行することでこれを解決しました。


1

私もこの問題を抱えていました。解決策は、EclipseがプロジェクトをJavaプロジェクトとして作成したことを確認することです。新しいJavaプロジェクトを作成し、クラスをsrcフォルダーにコピーするだけです(そして最終的な依存関係をインポートします)。これで問題が解決します。


コメントをありがとう、KullDox。私は長い間問題を解決してきましたが、他の誰かがここでの解決策が役に立てば幸いです。
ヘレンニーリー

1

正解は次のとおりです。ビルドパスでは、ScalaライブラリはJREライブラリの前に配置する必要があります。

移動したJavaにBuildPath>注文とエクスポートとトップにScalaのライブラリを移動


1

(Eclipse Heliosで)ファイルシステムからインポートしたJavaプロジェクトでこの問題が発生しました。ここにヒントがあります。「bin」ディレクトリが表示されていないため、srcコードはまったくコンパイルされていないようです。

(ウィザードを使用して)最初からJavaプロジェクトを作成し、次に .project、非稼働プロジェクトと稼働プロジェクトのファイルをありました。

「エディターにメインタイプが含まれていません」を与えるプロジェクトは、これを.projectファイルの「buildSpec」として持っていました:

<buildSpec>
</buildSpec>

しかし、作業プロジェクトはこれを「buildSpec」として持っていました:

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

これをコピーして、インポートしたプロジェクトが機能しました。

私の答えはJavaですが、Scalaプロジェクトの問題も同じかもしれません。


1

作成したファイルがsrc(source)フォルダーの外にある可能性があります。ソースフォルダーの外部にある.javaファイルから(srcフォルダーにあるファイルから)クラスオブジェクトを呼び出そうとすると、同じエラーが発生します。.javaファイルをソースフォルダーにコピーしてからビルドします。エラーはなくなります。


1

私も同じ問題を抱えていました。私はsrcパッケージのメインクラスを別のフォルダーに入れました。私はそれを正しいフォルダに移動して解決しました


1

コマンドラインから「eclipse -clean -refresh」を実行します。これにより、他のすべてのソリューションが失敗したときの問題が解決しました。


1

これは、Javaビルドパスの問題である可能性があります。以下の手順を試してください:

  1. プロジェクトのプロパティに移動します
  2. Javaビルドパスに移動
  3. 「ソース」タブに移動し、プロジェクトのsrcフォルダーを追加します

これで問題が解決します。


1

Mavenプロジェクトの場合は、Javaファイルがsrc / main / javaの下に作成されていることを確認してください

取得できない場合は、JREパスを変更して、上記のフォルダー構造でJavaファイルを作成してください。


0

私にとって、Eclipse 3.6では、この問題は私のメインメソッドがパブリックでない場合に発生します。私はこのようなメインメソッドを持っていることで問題を引き起こしました:

static void main(String[] args) 

デバッガはこれを単独で検出できませんでした。私はEclipseがこれを見落としたことにかなり驚いています。


0

最悪の場合-最初からすべてのインポートを使用してプロジェクトをもう一度作成します。私の場合、他のオプションはどれも機能しませんでした。このタイプのエラーは、プロジェクト設定にエラーがあることを示しています。私はかつてそれを解決することができましたが、さらなる開発が行われると、エラーが戻ってきました。最初からすべてを再作成することで、一部のリンクを理解および最適化するのに役立ちましたが、今では正しく機能していると確信しています。


0

以下の手順に従ってください:

  1. すべての.javaファイルを他の場所にバックアップします
  2. Javaプロジェクト全体を削除する
  3. ルートを右クリックして「新規」をクリックして、新しいJavaプロジェクトを作成します。
  4. すべてのファイルを新しい場所に復元します!!

0

ファイル>>インポート>>既存のプロジェクトをワークスペースに>>ファイルアーカイブを選択>>ファイルを参照して検索>>完了。すでに他の方法でインポートされている場合は、それを削除してその方法で試してください。それを試すまで、私は同じ問題を抱えていました。


0

チェックすべきもう1つのこと:ソースファイルに、そのサブディレクトリに対応する正しいパッケージ宣言が含まれていることを確認してください。OPで言及されているエラーは、サブディレクトリのファイルで宣言されている「メインタイプ」を実行しようとすると表示されますが、パッケージステートメントがありません。


0

ソースフォルダーを変更した後も、この問題が発生します。うまくいった解決策は、単にファイルを編集して保存することです。


0

「プロジェクトの更新」を試してください。これを実行すると、「Javaアプリケーションとして実行」オプションが表示されました。


0

私の特定の「Hello World」の場合、この問題の原因は、私のmain()メソッドがScala内にあるという事実でしたclass

main()メソッドをScalaの下に置くobjectと、エラーは消えました。

これはobject、Java用語のScala が、内部に静的メンバーとメソッドのみを持つエンティティであるためです。

そのためpublic static void main()、ScalaのJavaをの下に配置する必要がありますobject

(スカラclassは内部に静的を含まない場合があります)

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