Java 启动层FindException初始化期间出错:找不到模块
使用Java 9执行简单的“Hello World”程序会导致以下错误消息: 启动层初始化期间出错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.lang.module.FindException:找不到模块com.pantech.myModule 我执行的命令行是:
java --module-path bin -m com.pantech.myModule/com.pantech.myModule.HelloWorld
此命令行从mybin
目录的父目录执行,该目录包含所有.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→ 默认包。只保留一个类(您在其中编写了代码),并删除其他类
在那之后,运行你的程序,它肯定会毫无错误地运行。我也遇到了同样的问题,我这样解决了它:
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,而不是从磁盘)
重新导入它
编译的模块文件在哪个目录中?似乎您需要添加到模块路径的目录是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,问题得到了解决。这个解决方案对我来说应该是显而易见的,但我想我是在寻找更模糊的东西。你能解释一下吗?我仍然无法弄清楚我所做的改变