初始化引导层期间发生错误FindException:找不到模块

时间:2018-03-27 19:19:17

标签: java java-9 java-module

使用Java 9执行简单的Hello World程序会导致以下错误消息:

Error occurred during initialization of boot layer  
java.lang.module.FindException: Module com.pantech.myModule not found

我执行的命令行是:

java --module-path bin -m com.pantech.myModule/com.pantech.myModule.HelloWorld

此命令行从我的bin目录的父目录执行,该目录包含所有.class字节码文件。

module-info.class文件位于bin目录中的com.pantech.myModule目录中。 HelloWorld.class文件包含main方法,位于com.pantech.myModule目录的package目录中。因此,HelloWorld.class文件的路径名是 bin \ com.pantech.myModule \ com \ pantech \ myModule \ HelloWorld.class

HelloWorld类位于com.pantech.myModule包中(包名与模块名相同)。

我使用Windows 10作为操作系统。从我读过的所有内容来看,上面的命令行应该是正确的。有关如何解决此问题的任何建议吗?

11 个答案:

答案 0 :(得分:8)

在执行硒测试时,我遇到了同样的问题,我从Eclipse的Build path下的ModulePath到ClassPath中删除了硒依赖项,并且有效!

答案 1 :(得分:7)

其背后的原因是,在创建自己的类的同时,您也接受了按照IDE的规定创建默认类的问题,并且在自己的类中编写代码后,您会遇到此类错误。为了消除这种情况,请转到PROJECT文件夹-> src文件夹->默认程序包仅保留一个类(在其中编写了代码),然后删除另一个类。

在那之后运行您的程序,它肯定会运行而没有任何错误。

答案 2 :(得分:3)

我遇到了类似的问题,我遇到的问题是我在 selenium-server-standalone-3.141.59.jar 下添加了 modulepath 而它应该在 classpath

所以通过classpath选择(project -> Properties -> Java Bbuild Path -> Libraries) 添加下载的最新 jar

添加后一定是这样的

enter image description here

必须为我下载适当的浏览器驱动程序我检查并下载了相同版本的 chrome for chrome driver 并添加到 C:\Program Files\Java

以下是对我来说很好用的代码

public class TestuiAautomation {

    public static void main(String[] args) {

        System.out.println("Jai Ganesha");
        try {
            System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Java\\chromedriver.exe");
            System.out.println(System.getProperty("webdriver.chrome.driver"));
            ChromeOptions chromeOptions = new ChromeOptions();
            chromeOptions.addArguments("no-sandbox");
            chromeOptions.addArguments("--test-type");
            chromeOptions.addArguments("disable-extensions");
            chromeOptions.addArguments("--start-maximized");
            WebDriver driver = new ChromeDriver(chromeOptions);
            driver.get("https://www.google.com");
            System.out.println("Google is selected");
        } catch (Exception e) {
            System.err.println(e);
        }

    }
}

答案 3 :(得分:2)

我通过进入“属性”->“ Java构建路径”并重新排序源文件夹使其位于JRE系统库上方来解决了这个问题。

答案 4 :(得分:1)

你说你的module-info.java包含

module myModule {}

这意味着它声明了一个名为myModule com.pantech.myModule的模块。从命令格式指出: -

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

答案 5 :(得分:0)

我遇到了同样的问题,并通过以下方式解决了该问题:

  1. 我从eclipse中删除了所有项目,而不是从计算机中删除了。
  2. 我创建了一个新项目,一旦您输入了项目名称,就会出现另一个窗口,其中写着:“ Create module-info.java”。我只是单击“不创建”。
  3. 我创建了一个包裹。让我们将包称为“ mywork”
  4. 我在“ myWork”包中创建了一个Java类。让我们将类称为“ HelloWorld”。
  5. 我正常运行文件,并且工作正常。

注意:首先,请确保Java使用CMD命令以这种方式工作,您将了解问题出在Eclipse而非JDK上。

答案 6 :(得分:0)

当我将Java版本更新为12.x时,我遇到了同样的问题。我正在通过Eclipse IDE执行项目。我不确定此错误是否是由兼容性问题引起的。

但是,我从系统中删除了12.x并安装了8.x,并且我的项目开始正常运行。

答案 7 :(得分:0)

将bin文件夹添加到.gitignore后,我刚刚遇到了相同的问题,不确定是否导致了问题。

我通过转到Project / Properties / Build Path解决了该问题,并删除了scr文件夹并再次添加。

答案 8 :(得分:0)

检查您在jdk 9或更高版本中构建的项目,高于eclipse的模块存在一些问题。将其更改为jdk 9,然后它将运行正常

答案 9 :(得分:0)

在删除我的 bin 文件夹以将其从我的 git 历史记录中删除后,我遇到了这个问题。要解决这个问题 在 Eclipse 中:

  1. 删除项目(从 Eclipse,而不是从磁盘)
  2. 重新导入。

答案 10 :(得分:0)

尝试从项目的 Java 构建路径中删除 JRE 系统库。然后通过单击添加库在模块下再次添加它。