Java 启动层FindException初始化期间出错:找不到模块

Java 启动层FindException初始化期间出错:找不到模块,java,java-9,java-module,Java,Java 9,Java Module,使用Java 9执行简单的“Hello World”程序会导致以下错误消息: 启动层初始化期间出错 java.lang.module.FindException:找不到模块com.pantech.myModule 我执行的命令行是: java --module-path bin -m com.pantech.myModule/com.pantech.myModule.HelloWorld 此命令行从mybin目录的父目录执行,该目录包含所有.class字节码文件 module info.cla

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

启动层初始化期间出错
java.lang.module.FindException:找不到模块com.pantech.myModule

我执行的命令行是:

java --module-path bin -m com.pantech.myModule/com.pantech.myModule.HelloWorld
此命令行从my
bin
目录的父目录执行,该目录包含所有
.class
字节码文件

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

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


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

您说您的
模块info.java
包含

module myModule {}
这意味着它声明了一个名为
myModule
而不是
com.pantech.myModule
。从命令格式指向此点:

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

这背后的原因是,在创建自己的类的同时,您还接受了按照IDE的规定创建默认类,并且在自己的类中编写代码后,您会遇到这样的错误。要消除此问题,请转到项目文件夹→ <代码>src→ 默认包。只保留一个类(您在其中编写了代码),并删除其他类


在那之后,运行你的程序,它肯定会毫无错误地运行。

我也遇到了同样的问题,我这样解决了它:

  • 已从eclipse中删除所有项目,而不是从计算机中删除
  • 创建了一个新项目,当您写下项目名称时,您会看到另一个窗口,其中写着:“createmoduleinfo.java”。我刚刚点击了“不创建”
  • 创建了一个包。让我们把这个包叫做
    mywork
  • 在包
    myWork
    中创建了一个Java类。让我们调用类
    HelloWorld
  • 我正常运行该文件,工作正常

  • 注意:首先,使用CMD命令确保Java正常运行,这样您就会明白问题出在eclipse上,而不是JDK上。

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


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

    我在执行selenium测试时遇到了同样的问题,我在eclipse的Build path下从ModulePath中删除了selenium依赖项到类路径,它成功了

    我通过进入Properties->Java Build Path并重新排序我的源文件夹,使其位于JRE系统库之上,从而解决了这个问题。

    我只是在将bin文件夹添加到.gitignore后遇到了同样的问题,不确定这是否导致了问题


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

    检查您在jdk 9中的项目构建,或者不在jdk 9之上,eclipse在模块方面有一些问题。将其更改为jdk 9,然后它将正常运行

    我有类似的问题,我面临的问题是我在
    模块路径
    下添加了
    selenium-server-standalone-3.141.59.jar

    因此,通过
    (项目->属性->JavaBBuild路径->库)选择
    classpath
    添加下载的最新版本

    加进去以后一定是这样的

    必须为我下载相应的浏览器驱动程序。我检查并下载了相同版本的chrom for chrome,并添加到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);
            }
    
        }
    }
    

    为了从git历史记录中删除bin文件夹,我出现了这个问题。修理它 在Eclipse中:

  • 删除项目(从Eclipse,而不是从磁盘)
  • 重新导入它

  • 尝试从项目的Java构建路径中删除JRE系统库。然后通过单击add Library(添加库)再次将其添加到模块下。

    编译的模块文件在哪个目录下?似乎您需要添加到模块路径的目录是
    bin\com.pantech.myModule
    编译的模块文件(module info.class)位于bin\com.pantech.myModule目录中。您是否可以共享类定义(从包声明开始)和模块定义,以便复制上述内容?老实说,对于这样的实验,我可以作为参考。(您可能还需要交叉验证编译命令)位于incom.pantech.myModule目录中的模块定义文件(Module info.java)包含以下内容:Module myModule{}HelloWorld文件的源代码包含以下内容:包com.pantech.myModule;公共类HelloWorld{publicstaticvoidmain(String[]args){System.out.println(“来自模块的HelloWorld”);}}}@D.Pante似乎指出了您所犯的错误。这就是为什么我建议也参考指南。那里的模块名与包名
    com.hellives
    (在示例中)相同,因此它们的命令有效。另外,有关使用的命令的更多详细信息,请参阅。谢谢。通过将module-info.java文件中的模块名称改为com.pantech.myModule,而不仅仅是myModule,问题得到了解决。解决办法应该是