5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

メイン・クラスが存在するにもかかわらず「エラー: メイン・クラスXXXが見つからなかったかロードできませんでした」が発生する

Last updated at Posted at 2019-10-02

事象

まず以下のようなChildクラスが存在するとします。

Child.java
public class Child extends Parent {
    public static void main(String[] args) {
        System.out.println("This class is `Child`");
    }
}

これをchild.jarに格納し、Java8で実行した結果が次の通りになります。

C:\>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

C:\>java -cp child.jar Child
エラー: メイン・クラスChildが見つからなかったかロードできませんでした

Childクラスは確かに存在するにも関わらず「メイン・クラスChildが見つからなかったかロードできませんでした」というエラーによりJavaの実行が失敗しました。

原因

__真因はChildの親クラスParentが読み込めていないためになります。__実はParentchild.jarとは別のparent.jarに格納されています。しかし上記のjavaコマンド実行方法では、parent.jarが読み込めていません。

そこでparent.jarもクラスパスに加えて、javaを実行してやると、想定通り動作しました。

C:\>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

C:\>java -cp child.jar;parent.jar Child
This class is `Child`

「Childが見つからない」という部分だけを見ると、Childが正しくchild.jarに格納できていないように思えますし、実際筆者はこの思いこみのせいでずいぶんと時間を無駄にしました……。エラーメッセージが分かりにくいのが悪いんや(逆ギレ)

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?