私は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");
}
}
コンパイラの設定に変更を加える必要はありますか?それともコードですか。
これは役立つかもしれません:
1)「ビルド」メニュー->「Rebuild Project
」。 Intellijは、クラスが既に存在するためにクラスを書き換えない場合があります。この方法では、Intellijにすべての書き換えを要求します。
2)[実行]メニュー-> "Edit configuration
"->プロファイルを削除->プロファイル(Javaアプリケーションの場合は "アプリケーション")を追加し直し、 " [メインクラス]ドロップダウンメニュー。
3)「ビルド」メニュー->「Rebuild Project
」。
上記の回答のいずれもうまくいかない場合は、intelliJ IDEを閉じて、プロジェクトのルートからintelliJ IDEファイルとフォルダーを削除します。
rm -rf .idea *.iml
次に、intelliJでプロジェクトを開きます。今すぐ動作するはずです。
私はこの問題を抱えていたので、このサイトで考えられるすべてのことを太陽の下で試しました。
リモートブランチからプルした後、Javaクラスが取得されませんでした。すべてのクラスには、青のCではなく、プロジェクト階層内の名前で赤のJがありました。
最後に、私はこのチュートリアルに従い、説明されていないものをいくつか試し、問題を修正しようとしました: https://www.jetbrains.com/help/idea/creating-and-managing-modules。 html
私がやったことは次のとおりです。
何らかの理由で、すべてのクラスに青いCがありました。
IntelliJやIDEが現象を説明する方法をよく理解している人がいますが、私が知っているのは、すべてのクラス、さらに重要なメインクラスを確認して実行できることだけです。
out
フォルダーを明示的に作成し、出力パスをC:\Users\USERNAME\IdeaProjects\PROJECTNAME\out
に設定します
out
だけで、IntelliJがフォルダーを作成することを期待していないときに、私にとってはうまくいくように見えました。
また、IntelliJに新しい実行構成を作成してみてください。
クリックして前のものを見つける
その後、それを削除します
大丈夫。
今、(重要な手順)メインメソッドを含むクラスを開きます。これはおそらく、左側のプロジェクトペインでクラス名をクリックすることで最も簡単に実行できます。
を与える Alt + Shift + F10 そしてあなたは
今ヒット Enter!!
Tadah ??(動作しましたか?)
クラスモジュールを確認してください:intellijでこの問題に遭遇しました:Mavenマルチモジュールプロジェクトがあります。問題は、構成内にモジュールが存在しないクラスを実行しているため、私の問題は適切なモジュールを設定することで修正されました(「構成の編集」->「モジュールのクラスを使用」)
これはあなたを助けるかもしれません
私はこれがしばらく前に尋ねられたことを知っていますが、私はこの問題につまずいていて、私の発見が他の人に役立つかもしれないと思っていました。指摘したように、エラーメッセージは基本的にoutフォルダーの結果です。これは、プログラムを実行しようとすると、最初にコードをコンパイルし、コンパイル結果をoutの場所に配置してから、コンパイルしたコードをoutの場所からロードしようとするためです。コンパイルされたコードが予期した場所にない場合、エラーが発生します。
特に共有したい点は、実行構成で構成パネルの[起動前]セクションで[ビルド]が指定されていても、コードがコンパイル(ビルド)されない場合があることです。
これはいつ起こりますか?これが発生する可能性のある状況の1つは、モジュールを使用していて、モジュールからディレクトリを手動で削除した場合です。たとえば、「foo」という名前のモジュールがある場合、out/productionの下にfooという名前のディレクトリがあるはずです。手動で削除した場合、ビルドシステムは再構築が必要であることを認識しない場合があります。
さらに悪いことに、[ビルド]を選択した場合|モジュール 'foo'をビルドしますが、それでもモジュールは再ビルドされません。その場合は、モジュール内のファイル(たとえば、「bar.Java」)を選択してから、[ビルド] | [ 「bar.Java」を再コンパイルします。これで、outディレクトリのout/production/fooが復元されます。
IntelliJは通常、進行中の変更について知っているので、これは私を驚かせ、理解するのに少し時間を要したので、共有すると思いました。
クラスがデフォルトフォルダにあるとき、つまりクラスがパッケージを宣言していないとき、私はそのような問題に直面しました。
そのため、クラスの上でpackageステートメント(たとえば、package org.me.mypackage;
)を使用して修正する必要があると思います。
「src」フォルダーを「Sources」としてマークする必要がありました。 IntelliJを再起動してプロジェクトを再構築した後、問題なくプロジェクトを実行できました( screenshot を参照)。編集:「プロジェクト構造」タブにアクセスするには、「ファイル」->「プロジェクト構造」を選択するか、Ctrl + Shift + Alt + Sを押します。
他の場所からたくさんの.Javaファイルを継承しましたが、どのIDEでもそれらを動作させる方法がわかりませんでした。最終的に、Main.Javaファイルがあるコマンドラインに移動し、javac Main.Java
を実行する必要がありました。これにより、多数の.CLASSファイルが作成されました。 IDEはその後、何をすべきかを把握することができました。
私の場合、問題はIntelliJのアップグレードに関連しているように見えました。これを行ったとき、古いIntelliJのファイルを新しいIntelliJのファイル(2017コミュニティから2018コミュニティ)で上書きしました。その後、私のプロジェクトはすべて壊れました。私はこのスレッドですべてを試しましたが、どれも機能しませんでした。 gradleを最新バージョン(4から4.8)にアップグレードしようとしましたが、うまくいきませんでした。私のために働いた唯一のことは、IntelliJフォルダ全体を削除して再インストールすることでした。その後、私のプロジェクトはすべてうまくいきました。
私のために-私は上記のオプションのいくつかを試しましたが、動作しませんでした。その後、アプリケーションクラスの名前を変更しただけで、おそらくintelliJが新しいjarを作成するように強制され、エラーメッセージが変更され始めました。それから私はそれを元に戻し、それは働いた。
私の場合、モジュールのbuild.gradleでは、mainClassNameの割り当てに完全修飾クラス名、つまりメインクラスのソースコードファイルでパッケージ名として指定されているとおり。
私にとって、問題はファイルパスの特殊文字でした。
IntelliJを使用するとプロジェクトを開くことができましたが、プロジェクトをビルド/実行したときに、ファイルパスを変換して特殊文字を削除し、間違ったディレクトリを検索していたため、クラスを見つけることができませんでした。
この問題を解決するために、プロジェクトが保存されているフォルダー名から特殊文字を削除し、IntelliJでプロジェクトを再度開きました。
ここで提案されているすべてのハックを試しました-無駄に。最後に、新しいMavenアプリケーションを作成し、pom.xmlとJavaファイルとリソースを1つずつ手動でコピーしました。これですべて動作します。私はIntelliJを初めて使用しますが、まったく感心しませんが、不安定な状態にするのは簡単です。
Scala/SBTを使用すると、このエラーが発生しました。 IntelliJは、すべてが正しくセットアップされていても、メインクラスを見つけることができませんでした。私の解決策:<user>/.sbt/<version>/plugins/target
フォルダーを削除してから、IntelliJを再起動します。
メインクラスとモジュール(存在する場合)が適切に設定されている場合は、プロジェクトを再ビルド(CTRL + F9)し、ダブルチェック(構成の編集)するだけです。
Brad Turekのソリューションの詳細...デフォルトのIntelliJ Javaプロジェクトテンプレートの1つは、class Mainおよびmain()メソッドを定義するMainというファイルを期待していますエントリーポイント。メソッドが別のファイル(およびクラス)に含まれている場合、Run構成を変更します。
他の人が指摘したように、新しい構成を使用してReBuildする必要があります。私はパッケージを使用していますが、それはIMEに違いをもたらさないようです。お役に立てれば。
次の手順を実行します
Yippee ....コードが実行されます:)