Java
 Computer >> コンピューター >  >> プログラミング >> Java

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

Javaを使用する場合、コードの最終的な実行は、事前にコンパイルされたクラスを介して行われます。 Javaでクラスを作成すると、コンパイラは高レベルのソースコードをバイトコードと呼ばれる低レベルのスキームに変換します。作成するクラスごとに、プリコンパイルされたバイトコードのインスタンスが生成されます。このバイトコードには、Java仮想マシンで実行できる低レベルのコードが含まれています。

ただし、javaterminalコマンドを実行すると次のような結果が返される場合があります。could not find or load main class 。これは、クラスのバイトコードに問題があることを示しています。しかし、どのように修正しますか?調べてみましょう。

「メインクラスを見つけられなかった、またはロードできなかった」とはどういう意味ですか?

エラーcould not find or load main class コード設計に問題があることを示します。これは通常、端末で次のようなコマンドを実行してJavaプログラムを実行するときに発生します。

java Test

ここで、「テスト」は、実行する必要のあるコードを含むクラスの名前です。 could not find or load main classに直面した場合 エラーの場合、Testクラスのバイトコードが見つからなかったことを意味します。

「メインクラスが見つからないかロードできませんでした」エラーを修正するにはどうすればよいですか?

エラーを修正する方法はいくつかあります。 could not find or load main classを特定して修正するための主な方法をいくつか紹介します。 :

タイプミスを確認する

このエラーの最初の考えられる原因は、入力ミスである可能性があります。プログラム呼び出しの構文は、「java」とクラス名の2つのキーワードのみで構成されているため、間違いを犯す可能性があるのはクラス名だけです。キーワードにタイプミスをすると、コマンドラインに明らかな「コマンドが見つかりません」というエラーが表示されます。

入力ミスがないかクラス名を再確認してみてください。多くの場合、このようなエラーは、ばかげたスペルや入力ミスが原因で発生します。

「Test.java」ファイルに「Test」というクラスを作成したとします。これは、通常、コマンドラインを介してコンパイルする方法です。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

javac Test.java

次に、次のコマンドを実行して実行します。

java Test

これでプログラムは問題なく実行されます。ただし、上記のコマンドで「テスト」のスペルを間違えると、Could not find or load main classに直面する可能性があります エラー。

アプリケーションのクラスパスが正しくありません

アプリケーションのクラスパスがこのエラーを引き起こす可能性がある複数の方法があります。クラスパス(CLASSPATHとして記述)は、ユーザークラスがシステムに格納されている場所を指す環境変数です。クラスパスが指すディレクトリには、コードに直接インポートできる複数の事前に作成されたクラスが含まれています。

次のインポートコマンドを作成したとします。

Import org.company.Foo;

これを実行すると、JVMは場所/org/company/Foo.javaで「Foo」クラスを検索します。ご覧のとおり、クラスパスが間違ったアドレスを指している場合、JVMは探しているクラスを見つけることができないため、could not find or load main classをスローします。 エラー。

クラスパスに、プログラムが依存するすべてのシステムクラスが含まれていない場合があります。これは、まだダウンロードまたはセットアップしていないパッケージのクラスを含めようとしている可能性があることを意味します。その場合も、このエラーが発生します。

クラスが間違ったパッケージで宣言されました

ソースコードファイルの上に記述されたパッケージが、クラスが宣言されたパッケージ/モジュールを指していない場合。ほとんどのIDEは、リンティングプロセスでエラーを表示することにより、これを非常に簡単に把握するのに役立ちます。ただし、目を滑らせると上記のエラーになります。

この問題の最善の解決策は、クラスのパッケージ名が正しいパッケージを指していることを常に確認することです。 IntelliJやVSCodeなどの高度なIDEを使用している場合は、この問題に対してリンティングを有効にしてください。

たとえば、project / src / com / foo/barに保存されている次のクラスの例を見てください。

package com.foo.baz;
class Bar {
  // Some code here
}

ご覧のとおり、クラスが実際にcom / foo / barに格納されている間、パッケージはcom / foo/bazを指します。これを修正するには、適切なパッケージを指すようにパッケージステートメントを更新する必要があります。

package com.foo.bar;
class Bar {
  // Some code here
}

結論

この記事では、could not find or load main classについて見てきました。 Javaであり、なぜそれが発生するのか。次に、Could not find or load main classを修正するための主要な方法をいくつか特定してディスカッションを終了しました。 エラー。

Javaでプログラムを作成しようとしている場合、このエラーが時々ポップアップすることがあります。

エラーメッセージはかなり恐ろしいように見えるかもしれませんが、解決するのはそれほど難しくありません。あなたがする必要があるのはあなたが探しているクラスが正しい場所にあるかどうかをチェックすることです。


  1. Windows 10でJava仮想マシンを作成できなかった問題を修正

    Java ベースのプログラムやゲームは、Java が適切にインストールされていれば常に信頼できます。しかし最近、ユーザーは Minecraft のような Java プログラムを実行しようとしたときに Java 仮想マシンを作成できなかったと報告しています。これは、Java プログラムが機能するために使用する仮想マシンが正しくインストールされていないことを意味します。あなたも同じ問題に取り組んでいるなら、あなたは正しい場所にいます。エラーの修正に役立つ完璧なガイドをお届けします:Java 仮想マシンを作成できませんでした。 Windows 10 で Java 仮想マシンを作成できなかった問題

  2. FiveM が Windows 10 で Citizen DLL を読み込めない問題を修正

    FiveMはGTAの必然的な機能です。それがなければ、GTA の変更を行うことはできません。 マルチプレイヤーです グランド セフト オートの mod これにより、ゲーマー向けにさまざまなカスタマイズされたコンテンツが可能になり、プライベート サーバーへの安全な接続も可能になります。ただし、FiveM が Citizen DLL エラーを読み込めないという問題が発生することがあります。 Windows、Steam、Rockstar、Social Club などのプラットフォームでも同じ問題に対処している場合は、問題を解決するのに役立つ完璧なガイドが用意されているため、適切な場所にいます。 Ci