私はプログラミングのクラスの課題に取り組んでいます。 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();
以前にこれを投稿しましたが、いくつか問題がありました。私は他の人を修正しましたが、今はこれを残しています。どんなアドバイスも大歓迎です。
ファイルを実行するだけの場合は、パッケージエクスプローラーからクラスを右クリックし、[ファイルを実行]をクリックするか、(Alt + R、 F)、 または (Shift + F6)
また、「メインクラスダイアログウィンドウ」から参照を行うときに、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/
プロジェクトプロパティの[実行]タブで、メインクラスを指定します。さらに、この問題を回避するには、新しいプロジェクトの作成中に「メインクラスの作成」をチェックする必要があります。プロパティでメインクラスを指定することは常に機能するはずですが、まれに機能しない場合は、プロジェクトを再作成し、チェックを外しても「メインクラスを作成する」を忘れずに問題を解決できます。
私はEclipseでも同じ問題を抱えていたので、たぶんそれを解決するためにやったことがあなたを助けることができます。プロジェクトのプロパティで、メインメソッドを含むファイルに起動構成を設定する必要がありました(適切なファイルに自動的に設定されなかった理由がわかりません)。
新しいプロジェクトを作成するとき-Maven-Java NetbeansのアプリケーションIDEは、1番目のクラスエントリのメインクラスを認識しません。クラスなし)。
最初にジェネリッククラスが作成され、次にメインクラスが作成されると、Netbeansはメインクラスを登録し、アプリを実行およびデバッグできます。
私のために働いたステップ:
これが他の人にも役立つことを願っています。
あなたのコードだけがメインメソッドを閉じるのを忘れた場合
他のすべては私にいいですね
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();
}}
それを試して
閉じ中かっこを追加するアドバイスが機能する場合は、コードにインデントを追加して、すべての閉じ中かっこが個別に間隔を空けるようにすることをお勧めします:
public class LuisRp3 {
public static void main(String[] args) throws FileNotFoundException {
// stuff
}
}
これは読みやすさに役立ちます。
一方、コード内の閉じ括弧をコピーするのを忘れた場合、または上記の提案が機能しない場合:構成を開き、メインクラスを手動で設定できるかどうかを確認します。私はNetBeansをあまり使用していないのではないかと思うので、そのオプションがどこにあるのかを説明することはできません。私の最良の推測は、「実行構成」またはそのようなものの下です。
編集:peeskillet's answer 閉じ括弧の追加が機能しない場合を参照してください。
この状況では、いくつかの問題が発生する可能性があります(例の後にコードがあり、単にコードを括弧で囲んでいないと仮定した場合)。
まず、現在のファイルだけでなくプロジェクト全体を実行している場合は、プロジェクトがメインプロジェクトであり、プロジェクトのメインクラスが正しいファイルに設定されていることを確認してください。
それ以外の場合、コードが正常なクラスメートを見てきましたが、それでも同じ問題がありました。 Netbeansでは、簡単な修正が次のように行われる場合があります。
これが機能しない場合は、Netbeansキャッシュをクリアしてみてください。他のすべてが失敗した場合は、Netbeansのクリーンなアンインストールと再インストールを行ってください。
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")
{
コードの最後に}}
を追加する必要があります。
メインクラスの名前をMain
に変更する必要があります。他の名前にはできません。
作成するパッケージおよびクラスの数に関係なく、メインクラスにMain
という名前を付ける必要があります。
それで全部です。
また、「メインクラスが見つかりません」と不満を言うNetbeansを経験しました。この問題は、過去に機能していたことがわかっていたプロジェクトで発生していましたが、別のPCで試したときに失敗しました。
私の特定の失敗の理由はおそらくOPとは異なりますが、デバッグの旅で学んだことを共有します。これらの洞察が誰でもこのトピックに関連する独自の問題を理解するのに役立つ場合.
私が学んだことは、NetBeansを起動すると、「プロジェクトのスキャン...」という手順を実行する必要があることです
このフェーズの前に、main()メソッドを含む.Javaファイルが「プロジェクト」ペインに表示され、そのアイコンが次のように表示されることに注意してください(矢印なし)。
このスキャンフェーズが終了した後、ファイル内でmain()メソッドが検出された場合、そのファイルのアイコンはこれに変わります(矢印付き)。
そのため、私のシステムでは、この「プロジェクトをスキャンしています...」ステップが失敗しているように見え、代わりに「プロジェクトを開く」ステップでスタックしていました。
また、右下隅に小さな赤いアイコンがあり、これが問題を示唆しています。
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クラスが見つかりました」問題。
ツールバーの検索で矢印を押し、[カスタマイズ...]を選択します。プロジェクトのプロパティが開きます。カテゴリで[実行]を選択します。メインクラスを探します。すべてのメインクラスの文字をクリアし、クラス名を入力します。 OKをクリックします。そして、再度実行します。問題は解決しました。