web-dev-qa-db-ja.com

ブートレイヤーFindExceptionの初期化中にエラーが発生しました:モジュールが見つかりません

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を使用しています。私が読んだすべてのものから、上記のコマンドラインは正しいはずです。これを修正する方法についての提案はありますか?

8
D. Pante

この背後にある理由は、独自のクラスを作成する一方で、IDEで規定されているデフォルトクラスを作成することも受け入れ、独自のクラスでコードを記述した後、そのようなエラーが発生することです。削除するため、PROJECTフォルダー-> srcフォルダー->デフォルトパッケージに移動して、1つのクラス(コードを記述した)のみを保持し、別のクラスを削除します。

その後、プログラムを実行すると、エラーなしで確実に実行されます。

10
Rahat Rajdev

あなたのmodule-info.Javaには

module myModule {}

つまり、myModulenotcom.pantech.myModuleというモジュールを宣言します。コマンド形式からこれを指す:-

 -m <module-name>/<main-class>
2
tretegfdg

Javaバージョンを12.xに更新したときに同じ問題に直面しました。EclipseIDEを介してプロジェクトを実行していました。このエラーが互換性の問題に起因するのかわかりません。

ただし、システムから12.xを削除し、8.xをインストールすると、プロジェクトが正常に動作し始めました。

0
manju450

私は同じ問題を抱えていて、この方法で修正しました:

  1. コンピューターからではなく、Eclipseからすべてのプロジェクトを削除しました。
  2. 新しいプロジェクトを作成し、プロジェクトの名前を書くとすぐに、「Create module-info.Java」という別のウィンドウが表示されます。 「作成しない」をクリックしました。
  3. パッケージを作成しました。パッケージを「mywork」と呼びましょう
  4. パッケージ「myWork」内にJavaクラスを作成しました。このクラスを「HelloWorld」と呼びましょう。
  5. ファイルを正常に実行し、正常に機能していました。

注:まず、CMDコマンドを使用してJavaが機能していることを確認してください。JDKではなくEclipseに問題があることを理解できます。

0
Abbe