【java】「エラー: メイン・クラスMainが見つからなかったかロードできませんでした」の対処法

javaコマンドの実行ができない場合

コンパイルは通るけれども、javaコマンドで実行する時に「エラー: メイン・クラスMainが見つからなかったかロードできませんでした」が発生してしまう!

そんな場合の原因を以下に述べる

環境変数のclasspathの問題

javaは環境変数classpathが設定されていると、そのパスしか参照対象にならない。
よって、junitの設定などでclasspathが設定されてしまっていると、エラーが発生してしまう。

環境変数を修正した後は、一度コマンドプロンプトを閉じてから、再度対象ディレクトリからjavaコマンドを叩くと正常に実行できる事を確認した。(再起動までする必要はないと思われる。)

環境変数の修正を行いたくない、という場合

環境変数を修正したくない、という方は、javaコマンド実行時にclasspathをしてあげましょう。

javaコマンドのクラスパスの指定のオプションは「-cp」です。

java -cp .\ Main

のようにjavaコマンドを実行することにより、クラスパスを指定した上でコマンドを実行できます。

カレントディレクトリにMain.classが存在するか

コマンドを実行するディレクトリにMainクラスが存在しないと、エラーが発生します。

dirコマンドを使用し、カレントディレクトリにMail.classが存在するか確認しましょう。

dir *.class

のようにコマンドを入力すると、拡張子がclassファイルのみが出力されます。