web-dev-qa-db-ja.com

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

私はJavaの初心者で、JDK 1.7でIDEとしてインストールしたばかりのIntelliJを使用してコードを実行しようとしています。次のコードの一部はコンパイルされず、エラーが発生し続けます。

Error: Could not find or load main class libTest

コード

import Java.lang.Integer;
import Java.lang.String;
import Java.lang.System;
import Java.util.*;

class book {

    private String name = "trial";
    private int bookCode=1;
    private int issued=0;

     public void Issue(){
         if(issued==0) {
             issued=1;
             System.out.println("You have succesfully issued the book");
         }
         else {
             System.out.println("The book is already issued. Please contact the librarian for further details");
         }
    }

    public int checkCode() {
        return bookCode;
    }

    String readName() {
        return name;
    }

    public void setName(String newName){
        name=newName;
    }

    public void setBookCode(int newCode){
        bookCode=newCode;
    }
}

class library {
    private ArrayList books=new ArrayList();

    public void getList(){
        for(int bk:books){
            String bName=books(bk).readName();
            System.out.println((bk+1)+")  "+bName);
        }
    }
}

public class libTest{
    public static void main(String[] args){
        library newLib= new library();
        System.out.println("code working");
   }
}

コンパイラの設定に変更を加える必要はありますか?それともコードですか。

105

これは役立つかもしれません:

1)「ビルド」メニュー->「Rebuild Project」。 Intellijは、クラスが既に存在するためにクラスを書き換えない場合があります。この方法では、Intellijにすべての書き換えを要求します。

2)[実行]メニュー-> "Edit configuration"->プロファイルを削除->プロファイル(Javaアプリケーションの場合は "アプリケーション")を追加し直し、 " [メインクラス]ドロップダウンメニュー。

3)「ビルド」メニュー->「Rebuild Project」。

116
Ehsan

私にとっての解決策は、プロジェクト設定で出力ディレクトリを修正することでした。プロジェクトコンパイラの出力に「ターゲット」のみを使用する前。代わりに、フルパスを持つように更新しました。 D:\ dev\sigplusjava2_68\target enter image description here

65
Uncle Iroh

上記の回答のいずれもうまくいかない場合は、intelliJ IDEを閉じて、プロジェクトのルートからintelliJ IDEファイルとフォルダーを削除します。

rm -rf .idea *.iml 

次に、intelliJでプロジェクトを開きます。今すぐ動作するはずです。

64
youhans

私はこの問題を抱えていたので、このサイトで考えられるすべてのことを太陽の下で試しました。

リモートブランチからプルした後、Javaクラスが取得されませんでした。すべてのクラスには、青のCではなく、プロジェクト階層内の名前で赤のJがありました。

最後に、私はこのチュートリアルに従い、説明されていないものをいくつか試し、問題を修正しようとしました: https://www.jetbrains.com/help/idea/creating-and-managing-modules。 html

私がやったことは次のとおりです。

  1. ファイルへ移動|プロジェクト構造、またはCrtl + Shift + Alt + Sを押す
  2. [プロジェクト設定]セクションで[モジュール]を選択します。
  3. [Sources]タブで、[Mark as:]行の[Sources]をクリックします。
  4. [適用]ボタンをクリックします。

何らかの理由で、すべてのクラスに青いCがありました。

IntelliJやIDEが現象を説明する方法をよく理解している人がいますが、私が知っているのは、すべてのクラス、さらに重要なメインクラスを確認して実行できることだけです。

29
Sarah Cohen

outフォルダーを明示的に作成し、出力パスをC:\Users\USERNAME\IdeaProjects\PROJECTNAME\outに設定します

LIKE THIS

outだけで、IntelliJがフォルダーを作成することを期待していないときに、私にとってはうまくいくように見えました。


また、IntelliJに新しい実行構成を作成してみてください。

クリックして前のものを見つける

![Edit Configurations

その後、それを削除します

enter image description here

大丈夫。

今、(重要な手順)メインメソッドを含むクラスを開きます。これはおそらく、左側のプロジェクトペインでクラス名をクリックすることで最も簡単に実行できます。

を与える Alt + Shift + F10 そしてあなたは

THIS

今ヒット Enter!!

Tadah ??(動作しましたか?)

10
Brad Turek

キャッシュを無効にして、intellijを再起動してください。 Go to File as show in the attached picture

6
SKK

クラスモジュールを確認してください:intellijでこの問題に遭遇しました:Mavenマルチモジュールプロジェクトがあります。問題は、構成内にモジュールが存在しないクラスを実行しているため、私の問題は適切なモジュールを設定することで修正されました(「構成の編集」->「モジュールのクラスを使用」)

これはあなたを助けるかもしれません

6

私はこれがしばらく前に尋ねられたことを知っていますが、私はこの問題につまずいていて、私の発見が他の人に役立つかもしれないと思っていました。指摘したように、エラーメッセージは基本的にoutフォルダーの結果です。これは、プログラムを実行しようとすると、最初にコードをコンパイルし、コンパイル結果をoutの場所に配置してから、コンパイルしたコードをoutの場所からロードしようとするためです。コンパイルされたコードが予期した場所にない場合、エラーが発生します。

特に共有したい点は、実行構成で構成パネルの[起動前]セクションで[ビルド]が指定されていても、コードがコンパイル(ビルド)されない場合があることです。

これはいつ起こりますか?これが発生する可能性のある状況の1つは、モジュールを使用していて、モジュールからディレクトリを手動で削除した場合です。たとえば、「foo」という名前のモジュールがある場合、out/productionの下にfooという名前のディレクトリがあるはずです。手動で削除した場合、ビルドシステムは再構築が必要であることを認識しない場合があります。

さらに悪いことに、[ビルド]を選択した場合|モジュール 'foo'をビルドしますが、それでもモジュールは再ビルドされません。その場合は、モジュール内のファイル(たとえば、「bar.Java」)を選択してから、[ビルド] | [ 「bar.Java」を再コンパイルします。これで、outディレクトリのout/production/fooが復元されます。

IntelliJは通常、進行中の変更について知っているので、これは私を驚かせ、理解するのに少し時間を要したので、共有すると思いました。

5
msoltys

クラスがデフォルトフォルダにあるとき、つまりクラスがパッケージを宣言していないとき、私はそのような問題に直面しました。

そのため、クラスの上でpackageステートメント(たとえば、package org.me.mypackage;)を使用して修正する必要があると思います。

4
Hakan Serce

「src」フォルダーを「Sources」としてマークする必要がありました。 IntelliJを再起動してプロジェクトを再構築した後、問題なくプロジェクトを実行できました( screenshot を参照)。編集:「プロジェクト構造」タブにアクセスするには、「ファイル」->「プロジェクト構造」を選択するか、Ctrl + Shift + Alt + Sを押します。

4
NEMESIS

[モジュール]タブを開きます(Ctrl + Shift + Alt + Sを押します)。 1つのプロジェクトの下に2つのモジュールがありました。 2番目の冗長モジュールを削除した後、問題を解決しました(スクリーンショットを参照)。 enter image description here

2
Taras Melnyk

ディレクトリをソースディレクトリとしてマークします。 Ctrl + Shift + Alt + Sで開く

enter image description here

1
Crt

他の場所からたくさんの.Javaファイルを継承しましたが、どのIDEでもそれらを動作させる方法がわかりませんでした。最終的に、Main.Javaファイルがあるコマンドラインに移動し、javac Main.Javaを実行する必要がありました。これにより、多数の.CLASSファイルが作成されました。 IDEはその後、何をすべきかを把握することができました。

1
codeMonkey

私の場合、問題はIntelliJのアップグレードに関連しているように見えました。これを行ったとき、古いIntelliJのファイルを新しいIntelliJのファイル(2017コミュニティから2018コミュニティ)で上書きしました。その後、私のプロジェクトはすべて壊れました。私はこのスレッドですべてを試しましたが、どれも機能しませんでした。 gradleを最新バージョン(4から4.8)にアップグレードしようとしましたが、うまくいきませんでした。私のために働いた唯一のことは、IntelliJフォルダ全体を削除して再インストールすることでした。その後、私のプロジェクトはすべてうまくいきました。

1
blindcant

enter image description here

間違ったコンテンツを含むmodules.xml、私は私のIDEAで何が問題なのかわかりません。

1
ibamboo

私のために-私は上記のオプションのいくつかを試しましたが、動作しませんでした。その後、アプリケーションクラスの名前を変更しただけで、おそらくintelliJが新しいjarを作成するように強制され、エラーメッセージが変更され始めました。それから私はそれを元に戻し、それは働いた。

1
JavaTec

私の場合、モジュールのbuild.gradleでは、mainClassNameの割り当てに完全修飾クラス名、つまりメインクラスのソースコードファイルでパッケージ名として指定されているとおり。

0
Matthew

私にとって、問題はファイルパスの特殊文字でした。

IntelliJを使用するとプロジェクトを開くことができましたが、プロジェクトをビルド/実行したときに、ファイルパスを変換して特殊文字を削除し、間違ったディレクトリを検索していたため、クラスを見つけることができませんでした。

この問題を解決するために、プロジェクトが保存されているフォルダー名から特殊文字を削除し、IntelliJでプロジェクトを再度開きました。

0
Mitchell Cash

ここで提案されているすべてのハックを試しました-無駄に。最後に、新しいMavenアプリケーションを作成し、pom.xmlとJavaファイルとリソースを1つずつ手動でコピーしました。これですべて動作します。私はIntelliJを初めて使用しますが、まったく感心しませんが、不安定な状態にするのは簡単です。

0

Scala/SBTを使用すると、このエラーが発生しました。 IntelliJは、すべてが正しくセットアップされていても、メインクラスを見つけることができませんでした。私の解決策:<user>/.sbt/<version>/plugins/targetフォルダーを削除してから、IntelliJを再起動します。

0
Beni Murza

メインクラスとモジュール(存在する場合)が適切に設定されている場合は、プロジェクトを再ビルド(CTRL + F9)し、ダブルチェック(構成の編集)するだけです。

0
AlexPes

Brad Turekのソリューションの詳細...デフォルトのIntelliJ Javaプロジェクトテンプレートの1つは、class Mainおよびmain()メソッドを定義するMainというファイルを期待していますエントリーポイント。メソッドが別のファイル(およびクラス)に含まれている場合、Run構成を変更します。

構成ウィンドウの実行

  1. プロジェクトをIntelliJで開いた状態で、Run:Edit Configurations ...メニューを使用してビルド構成ウィンドウを開きます。
  2. Main classのエントリがmain() entryメソッドを公開するクラスを含むファイルの名前をリストしない場合、正しいファイル名を入力してください。 (画像の構成が間違っているため、構成パネルで赤色になっています。)
  3. 私のmain()エントリメソッドはクラス(およびファイル)ScrabbleTestにあります。 Main class:ScrabbleTestに変更すると、実行時エラーが修正されます。

他の人が指摘したように、新しい構成を使用してReBuildする必要があります。私はパッケージを使用していますが、それはIMEに違いをもたらさないようです。お役に立てれば。

0
JHake

次の手順を実行します

  1. 走りに行く
  2. 構成の編集に移動します
  3. 左上隅の緑色の+記号をクリックします
  4. 作業しているタイプ、たとえば「アプリケーション」を選択します
  5. 次に、名前なしの代わりに実行するクラスの名前を入力します
  6. Mainクラスのすぐ下に記述されている場所で同じことを行います。

Yippee ....コードが実行されます:)

0
Nikhil Goyal