LoginSignup
2
1

More than 3 years have passed since last update.

macOS Catalina で "エラー: メイン・クラス○○が見つからなかったかロードできませんでした" と言われたら

Last updated at Posted at 2020-05-21

今回はMacOSさんがとっても優秀過ぎて勝手に沼にハマった私の備忘録です。

環境

macOS Catallina

なにがあったか

私が久しぶりにJavaのソースコードを書いていてターミナルからコンパイルしたくなった時のことです。

javac -cp "classpathをいろいろ" -d 出力先ディレクトリ ./package名/Example.java

と普通に打ちます。
classファイルが生成されます。
ここまでは順調でした。

$ cd 出力先ディレクトリ
$ java package名/Example
エラー: メイン・クラスExampleが見つからなかったかロードできませんでした

orz

やらかしました。

いろいろ調べた結果、最終的には事なきを得たのでよくあるパターンと共に記事にしてみました。
(後の伏線になるのですが、今回私はDesktopディレクトリ以下で作業していました。)
同じことやらかした人に届けこの想い…。

Pattern1 ディレクトリ構成が違う

今回調子に乗ってsrcディレクトリとbinディレクトリに分けていて、
さらにパッケージも分けていましたので、まずディレクトリ構成からです。

これを最初にやっておくとエラー様の言う通り(場所の勘違いなどから)本当にclassファイルがない場合もここで発覚します。

Desktop/
      └─project/
             ├src/package名/
             │            └─Example.java
             └bin/package名/
                          └─Example.class

問題なかったです。

Pattern2 mainメソッドが無い

javaで実行するclassにはmainメソッドが必須です。
たまに書いてなくておなじみのエラーを出している人を見ます。

Pattern3 環境変数CLASSPATH

私は使ったことなかったので意識したことなかったですが、これを下手に設定して失敗するパターンもあるようです。

$ echo $CLASSPATH
$

まぁ使ったこと無いので当然ですけど大丈夫でした。

ここまで来るとなにがいけないのか。。。

Pattern4 macOSさんかしこい

いろいろ試して疲れた頃、(そもそもこんなに発覚しないことある…?)o.(;´Д`)とか思いだしました。
そこで、まさかと考えて「システム環境設定」→「セキュリティとプライバシー」を見るとscreen.png
今回Desktopでプログラミングしていた私は まんまと Catalinaさんのセキュリティに止められていたのです。
これにて一件落着。解決です。

まとめ

皆さんはこんなしょうもない設定してないと思うのですが、ネットで
"エラー: メイン・クラス○○が見つからなかったかロードできませんでした"
について調べても解決できず、(エラーメッセージも権限の問題らしきものなのに)それがわかりにくかったので、後に現れるかもしれない私と同じミスをする人のために書いてみました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1