1. ホーム
  2. Java

メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法

2022-02-13 19:04:22
<パス

私はこれまでEclipseを使ってJavaプログラムのコンパイルと実行を行ってきました。Javaプログラムのコンパイルと実行のプロセスをよりよく理解するために、手動でJavaアプリケーションをコンパイルしてみたところ、さまざまなパッケージが関係しているため、多くの問題に遭遇しました。例えば、Could not find or load main class ....

次に、Javaのプログラムをコンパイルして実行するまでの具体的なプロセスを見てみましょう。
まず、testフォルダの下に、ioとmodelという2つのディレクトリを新規に作成します。これらは、それぞれクラスMainとクラスStudentのパッケージです。

メモ帳にクラスのStudentを書きます。ここではNotePad++を使っていますが、メモ帳を使うのは理にかなっています。

メモ帳にクラスMainを書き、先頭にパッケージ名を書き、Studentクラスのパッケージパスをインポートすることに注意します。

上記のStudentとMainのサフィックス名を".java"に変更することに注意してください。そして、対応するディレクトリに保存してください。
testディレクトリでコマンドラインを開く。(シフトを押しながら、対応するディレクトリで右クリックすると、オプションが表示されます)
コンソールに入力する
javac . /io/Main.java . /model/Student.java
MainとStudent用にコンパイルします。

modelとioのディレクトリを開くと、StudentとMainのクラスが対応するディレクトリに.classファイルを生成していることがわかります。これは、コンパイルが成功したことを意味します。


コマンドラインで、次のように入力します。
java io.
出力された "boy" は、クラスファイルが正常に動作していることを意味します。

ここで、以前遭遇した問題ですが、生成された.classファイルをコンパイルした後、Main.classのあるディレクトリに直接行き、main関数を含むMain.classをjavaコマンドで実行すると、Could not find or load main class Mainというエラーになりました。

ここでしばらく行き詰ってしまい、この記事を参考にして解決しました。
https://blog.csdn.net/weakfantasy/article/details/53379501
その理由は