ホームページ  >  記事  >  Java  >  Java「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法

Java「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法

王林
王林転載
2023-04-24 16:37:087506ブラウズ

はじめに

通常、コードの編集とデバッグには、Eclipse、Manven、Android Studio、sublime、vim、notepad、Notepad などのツールを使用します。
Eclipse Android StudioなどでプロジェクトファイルやJavaクラスファイルを作成すると、すべてパッケージ名がつき、通常はツールでコンパイル・実行されますが、コマンドラインに切り替えて実行すると、
javac xxx となります。 .java
java xxx
おそらくメイン クラスが見つからないかロードできない可能性が非常に高いです

初めて Java を学習するとき、クラス ファイルは次のとおりです。パッケージ名が設定されていない場合はクラスパスに注意すれば基本的には問題ありません。ただし、ツール (Eclipse、Android Studio) を使用してコードを記述する場合、コード ファイルの

の場所は、パッケージ名で区切られたディレクトリ にあります。これは相対的な物理ディレクトリ (com/eagle/) であることに注意してください。そして、パッケージ名 (package) はコード内で宣言されており、仮想ディレクトリ (com.eagle.app) とみなすことができます。この記事では、クラスパスやシステム環境変数PATHに問題がない場合のエラーの原因と正しい対処法を中心に説明します。 コード ファイルは次のように非常に単純です:

package com.eagle.app;

public class MainJava {
	public static void main(String[] args) {
        if (args != null) {
            for (String arg : args) {
                System.out.println("arg = " + arg);
            }
            System.out.println("arg = " + args);
        } else {
            System.out.println("args = " + null);
        }
}

javac xxx.java コンパイルには相対物理パスが必要です

Java「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法

上記のように、Android を使用すると、 Studio を例にします

1. プロジェクト ディレクトリには src ディレクトリがありますが、そこにはコードの "src" ディレクトリではなく、アプリ全体のファイルが含まれます。Eclipse の場合、src ディレクトリはコードディレクトリ。
2. これはコードの「src」ディレクトリであり、パッケージ名に 1 対 1 で対応する「ディレクトリ」があります。com/eagle/app

MainJava をコンパイルするには、次を使用します。 :

//cd 到app目录
javac MainJava.java

または

//cd  到eagle 目录
javac  app/MainJava.java

または

//cd 到main目录
javac  java/com/eagle/app/MainJava.java

でも構いません。もちろん、任意の場所の相対ディレクトリにすることもできます。

戻って説明しましょう。現在実行されているディレクトリ (アプリ ディレクトリ、eagle ディレクトリ、メイン ディレクトリなど) を基準とした物理パスは有効なコンピュータ パス (xxx/xxx/xxx) であるため、名前は物理パスに対する相対パスです。

何か問題が発生した場合は、パスが間違っているはずです。

注: コード ディレクトリは、新しいコード ファイルを作成するときにパッケージ名の開始ディレクトリに基づいて決定されます

java xxx の実行には仮想パスが必要です

これは少し興味深いです。強調しておきますが、

パッケージ名仮想パス: xxx.xxx.xxx、これは「/」で区切られたディレクトリではないため、仮想パスと呼ばれます。

Java「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法

上の図で、2 は Java コード、1 はツールのコンパイルによって生成されたバイトコード ファイルです。ここで、MainJava.class を実行する必要があります。正しいコマンドは次のとおりです。

/ /cd は、com やそれ以下のディレクトリではなく、1 のメイン ディレクトリに移動します。

F:\GSProject>cd javatest\build\classes\java\main

F:\GSProject\javatest\build\classes\java\main>java com.eagle.app.MainJava

注: .class を持ち込まないでください (java com.eagle.app.MainJava.class は正しくありません)。 Java コマンドは次のパラメータをパッケージ名として認識するため、他のディレクトリに変更するには相対ディレクトリを使用しないでください。

以下はすべて間違っています

F:\GSProject\javatest\build\classes\java\main>java com.eagle.app.MainJava.class

Error: not found またはメインクラス com.eagle.app.MainJava.class

F:\GSProject\javatest\build\classes\java>java main\com.eagle.app.MainJava# は使用できません##エラー: メイン クラス main\com.eagle.app.MainJava が見つからないか、ロードできません


さて、上の図の 1 で囲まれたディレクトリを次の場所に移動します。 javatest ディレクトリで java com.eagle.app.MainJava

Java「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法

##
F:\GSProject\javatest>java com.eagle.app.MainJava
arg = [Ljava.lang.String;@75b84c92

を javatest ディレクトリで実行すると、パラメータのアドレスが次のようになります。 main関数の出力は正常に出力されます。バイトコードを自由に実行し、Linux または Mac に配置して、やりたいことを喜んで実行できることがわかります。 Java「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法

1 のディレクトリ構造はパッケージ com.eagle.app です。javac ファイル パスが **/xxx/xxx/xxx/Name.java** であり、

Java ファイルのパスは

xxx.xx.x.Name

です。クラスは使用しないでください。

以上がJava「メインクラスが見つからないかロードできません」エラーメッセージを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。