web-dev-qa-db-ja.com

NetBeansにメインクラスが見つかりません

私はプログラミングのクラスの課題に取り組んでいます。 NetBeansを使用しています。私は自分のプロジェクトを終了し、うまくいきました。実行しようとすると、「メインクラスが見つかりません」というメッセージが表示されます。メインのコードの一部を次に示します。

package luisrp3;
import Java.io.FileNotFoundException;
import Java.io.PrintStream;

public class LuisRp3 {

public static void main(String[] args) throws FileNotFoundException  {

    Java.io.File newFile = new Java.io.File("LuisRamosp4.txt");

    if (newFile.exists()) {
        newFile.delete();
    }

    System.setOut(new PrintStream(newFile));

    Guitar guitar = new Guitar(); 

以前にこれを投稿しましたが、いくつか問題がありました。私は他の人を修正しましたが、今はこれを残しています。どんなアドバイスも大歓迎です。

22
Luis Ramos
  1. プロジェクトエクスプローラーでプロジェクトを右クリックします
  2. プロパティをクリックします
  3. 実行をクリックします
  4. メインクラスがエントリポイントになりたいことを確認してください。 (完全修飾名、つまりmypackage.MyClassを使用してください)
  5. OKをクリックします。
  6. プロジェクトを実行:)

ファイルを実行するだけの場合は、パッケージエクスプローラーからクラスを右クリックし、[ファイルを実行]をクリックするか、(Alt + R、 F)、 または (Shift + F6

29
Paul Samsotha

また、「メインクラスダイアログウィンドウ」から参照を行うときに、Netbeansが必要なときにクラスを見つけられないというわずかに異なる問題を抱えている他のユーザー向けです。

メインメソッドに適切な署名がある可能性があります。私の場合、引数を忘れていました。

例:public static void main(String [] args)

修飾子publicとstaticはどちらの順序(public staticまたはstatic public)でも記述できますが、慣例では上記のようにpublic staticを使用します。

引数:引数には任意の名前を付けることができますが、ほとんどのプログラマーは「args」または「argv」を選択します。

詳細はこちら: http://docs.Oracle.com/javase/tutorial/getStarted/application/

8
TriMix

プロジェクトプロパティの[実行]タブで、メインクラスを指定します。さらに、この問題を回避するには、新しいプロジェクトの作成中に「メインクラスの作成」をチェックする必要があります。プロパティでメインクラスを指定することは常に機能するはずですが、まれに機能しない場合は、プロジェクトを再作成し、チェックを外しても「メインクラスを作成する」を忘れずに問題を解決できます。

2
Asmat Ali

私はEclipseでも同じ問題を抱えていたので、たぶんそれを解決するためにやったことがあなたを助けることができます。プロジェクトのプロパティで、メインメソッドを含むファイルに起動構成を設定する必要がありました(適切なファイルに自動的に設定されなかった理由がわかりません)。

2
Stefan

新しいプロジェクトを作成するとき-Maven-Java NetbeansのアプリケーションIDEは、1番目のクラスエントリのメインクラスを認識しません。クラスなし)。

最初にジェネリッククラスが作成され、次にメインクラスが作成されると、Netbeansはメインクラスを登録し、アプリを実行およびデバッグできます。

私のために働いたステップ:

  1. 新規プロジェクトの作成-Maven-Java application(project created:mytest; package created:com.me.test
  2. パッケージを右クリック:com.me.test
  3. 新規> Java Class>名前を「Whatever」にしたい」
  4. パッケージを右クリック:com.me.test
  5. 新規> Java Main Class> named it: 'Main'( 'メイン ')
  6. プロジェクトmytestを右クリックします
  7. プロパティをクリックします
  8. [実行]をクリックし、[メインクラス]テキストボックスの横にあります:> [参照]
  9. 表示されるはずです:com.me.test.Main
  10. それを選択し、「メインクラスの選択」をクリックします

これが他の人にも役立つことを願っています。

2
Felix

あなたのコードだけがメインメソッドを閉じるのを忘れた場合

他のすべては私にいいですね

public class LuisRp3 {

public static void main(String[] args) throws FileNotFoundException  {

    Java.io.File newFile = new Java.io.File("LuisRamosp4.txt");

    if (newFile.exists()) {
        newFile.delete();
    }

    System.setOut(new PrintStream(newFile));

    Guitar guitar = new Guitar(); 
}}

それを試して

1
Yehia Awad

閉じ中かっこを追加するアドバイスが機能する場合は、コードにインデントを追加して、すべての閉じ中かっこが個別に間隔を空けるようにすることをお勧めします:

public class LuisRp3 {

    public static void main(String[] args) throws FileNotFoundException  {

    // stuff

    }
}

これは読みやすさに役立ちます。

一方、コード内の閉じ括弧をコピーするのを忘れた場合、または上記の提案が機能しない場合:構成を開き、メインクラスを手動で設定できるかどうかを確認します。私はNetBeansをあまり使用していないのではないかと思うので、そのオプションがどこにあるのかを説明することはできません。私の最良の推測は、「実行構成」またはそのようなものの下です。

編集:peeskillet's answer 閉じ括弧の追加が機能しない場合を参照してください。

1
tamul

この状況では、いくつかの問題が発生する可能性があります(例の後にコードがあり、単にコードを括弧で囲んでいないと仮定した場合)。

まず、現在のファイルだけでなくプロジェクト全体を実行している場合は、プロジェクトがメインプロジェクトであり、プロジェクトのメインクラスが正しいファイルに設定されていることを確認してください。

それ以外の場合、コードが正常なクラスメートを見てきましたが、それでも同じ問題がありました。 Netbeansでは、簡単な修正が次のように行われる場合があります。

  1. 現在のコードをコピー(または別の場所にバックアップ)
  2. 現在のファイルを削除する
  3. プロジェクトに新しいメインクラスを作成します(古い名前を付けることができます)。
  4. コードを貼り付けます

これが機能しない場合は、Netbeansキャッシュをクリアしてみてください。他のすべてが失敗した場合は、Netbeansのクリーンなアンインストールと再インストールを行ってください。

1
EpicDavi
import Java.util.Scanner;
public class FarenheitToCelsius{
    public static void main(String[]args){
     Scanner input= new Scanner(System.in);
     System.out.println("Enter Degree in Farenheit:");
     double Farenheit=input.nextDouble();
     //convert farenheit to celsius
     double celsuis=(5.0/9)*(farenheit 32);
     system.out.println("Farenheit"+farenheit+"is"+celsius+"in celsius")
             {
0
yaw sefa anane

コードの最後に}}を追加する必要があります。

0
Foster Hao

メインクラスの名前をMainに変更する必要があります。他の名前にはできません。

作成するパッケージおよびクラスの数に関係なく、メインクラスにMainという名前を付ける必要があります。

それで全部です。

0
OmShanti

また、「メインクラスが見つかりません」と不満を言うNetbeansを経験しました。この問題は、過去に機能していたことがわかっていたプロジェクトで発生していましたが、別のPCで試したときに失敗しました。

私の特定の失敗の理由はおそらくOPとは異なりますが、デバッグの旅で学んだことを共有します。これらの洞察が誰でもこのトピックに関連する独自の問題を理解するのに役立つ場合.

私が学んだことは、NetBeansを起動すると、「プロジェクトのスキャン...」という手順を実行する必要があることです Scanning projects...

このフェーズの前に、main()メソッドを含む.Javaファイルが「プロジェクト」ペインに表示され、そのアイコンが次のように表示されることに注意してください(矢印なし)。

icon before scanning

このスキャンフェーズが終了した後、ファイル内でmain()メソッドが検出された場合、そのファイルのアイコンはこれに変わります(矢印付き)。

icon after scanning

そのため、私のシステムでは、この「プロジェクトをスキャンしています...」ステップが失敗しているように見え、代わりに「プロジェクトを開く」ステップでスタックしていました。

また、右下隅に小さな赤いアイコンがあり、これが問題を示唆しています。

Unexpected exception

Unexpected Exception
Java.lang.ExceptionInInitializerError

そのリンクをクリックすると、エラーの詳細が表示されました。

Java.security.NoSuchAlgorithmException: MD5 MessageDigest not available
    at Sun.security.jca.GetInstance.getInstance(GetInstance.Java:159)
    at Java.security.Security.getImpl(Security.Java:695)
    at Java.security.MessageDigest.getInstance(MessageDigest.Java:167)
    at org.Apache.lucene.store.FSDirectory.<clinit>(FSDirectory.Java:113)
Caused: Java.lang.RuntimeException
    at org.Apache.lucene.store.FSDirectory.<clinit>(FSDirectory.Java:115)
Caused: Java.lang.ExceptionInInitializerError
    at org.netbeans.modules.parsing.lucene.LuceneIndex$DirCache.createFSDirectory(LuceneIndex.Java:839)

「Java.security」という言及は、このマシンの「Java.security」ファイルをいじったことを思い出させました(具体的には、サルバドールバレンシアの手順を このスレッド から実行していましたが、間違ってしました。プロセスで「Java.security」を壊しました:))

「Java.security」ファイルに生じた損傷を修復すると、NetBeansの「Scanning projects ...」ステップが再び機能し始め、小さな緑色の矢印がファイルに再び表示され、「No mainクラスが見つかりました」問題。

0
Gurce

ツールバーの検索で矢印を押し、[カスタマイズ...]を選択します。プロジェクトのプロパティが開きます。カテゴリで[実行]を選択します。メインクラスを探します。すべてのメインクラスの文字をクリアし、クラス名を入力します。 OKをクリックします。そして、再度実行します。問題は解決しました。

0
user9154999