Java 9を使用して単純な「Hello World」プログラムを実行すると、次のエラーメッセージが表示されます。
ブートレイヤーの初期化中にエラーが発生しました
Java.lang.module.FindException:Module com.pantech.myModule not found
私が実行したコマンドラインは次のとおりです。
Java --module-path bin -m com.pantech.myModule/com.pantech.myModule.HelloWorld
このコマンドラインは、すべての.class
バイトコードファイルを含むbin
ディレクトリの親ディレクトリから実行されます。
module-info.class
ファイルは、bin
ディレクトリにあるcom.pantech.myModule
ディレクトリにあります。 HelloWorld.class
ファイルにはmainメソッドが含まれており、com.pantech.myModule
ディレクトリ内のパッケージディレクトリにあります。したがって、HelloWorld.class
ファイルのパス名はbin\com.pantech.myModule\com\pantech\myModule\HelloWorld.class。
HelloWorld
クラスはcom.pantech.myModule
パッケージ(モジュール名と同じパッケージ名)にあります。
オペレーティングシステムとしてWindows 10を使用しています。私が読んだすべてのものから、上記のコマンドラインは正しいはずです。これを修正する方法についての提案はありますか?
この背後にある理由は、独自のクラスを作成する一方で、IDEで規定されているデフォルトクラスを作成することも受け入れ、独自のクラスでコードを記述した後、そのようなエラーが発生することです。削除するため、PROJECTフォルダー-> srcフォルダー->デフォルトパッケージに移動して、1つのクラス(コードを記述した)のみを保持し、別のクラスを削除します。
その後、プログラムを実行すると、エラーなしで確実に実行されます。
あなたのmodule-info.Javaには
module myModule {}
つまり、myModule
、notcom.pantech.myModule
というモジュールを宣言します。コマンド形式からこれを指す:-
-m <module-name>/<main-class>
Javaバージョンを12.xに更新したときに同じ問題に直面しました。EclipseIDEを介してプロジェクトを実行していました。このエラーが互換性の問題に起因するのかわかりません。
ただし、システムから12.xを削除し、8.xをインストールすると、プロジェクトが正常に動作し始めました。
私は同じ問題を抱えていて、この方法で修正しました:
注:まず、CMDコマンドを使用してJavaが機能していることを確認してください。JDKではなくEclipseに問題があることを理解できます。