我按照步骤创建了 HelloWorld 示例,但它没有运行。它给出以下错误:
boot层初始化时发生错误 java.lang.module.FindException:读取模块时出错: F:\Develop Clipse\HelloWorld 中 原因: java.lang.module.InvalidModuleDescriptorException:HelloWorld.class 在顶级目录中找到(模块中不允许未命名的包)”
出现该错误是因为您将 jar 库文件添加到 MODULEPATH 而不是 CLASSPATH。您必须将 jar 文件添加到 CLASSPATH 中。如果您已经将 jar 文件添加到 MODLEPATH,则必须从那里删除并将 jar 文件添加到 CLASSPATH,步骤如下:
1] 在 ECLIPSE IDE 中右键单击您的项目名称
2] 单击“属性”->“JAVA 构建路径”-> 单击“库”选项卡。您将看到如下窗口:
3]展开MODULEPATH并选择所有jar文件并将其删除:看下图:
4] 之后单击 CLASSPATH -> 然后单击按钮“ADDJAR”并选择 jar 文件,您就完成了。请看下面的图片以进行澄清;
5]在 CLASSPATH 中添加 jar 文件后,它看起来像这样:
我之前也遇到过同样的错误,因为我使用的是默认包。
我是这样解决这个问题的: 右键项目-属性-Java构建路径-将类从Modulepath移动到Classpath
而且成功了!
只需从项目中删除 module-info.java 即可解决问题。
我有类似的问题,我面临的问题是我在 modulepath 下添加了 selenium-server-standalone-3.141.59.jar 而不是它应该在 classpath 下
因此通过(项目 - >属性 - > Java Bbuild路径 - >库)选择类路径 添加下载的最新的jar
添加后一定是这样的
并且必须为我下载合适的浏览器驱动程序,我检查并下载了相同版本的 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);
}
}
}
供参考
有两种方法可以解决此问题:
如果您不希望您的项目成为模块,您只需从项目中删除 module-info.java 文件即可。这会禁用模块化项目结构并允许包外部的类。
如果你想保持模块化的项目结构,你需要创建一个包并将Hello.class文件移入其中。就是这样: 在您的项目目录中,为您的包创建一个新文件夹。例如,您可以创建一个名为
com.example
的文件夹。
将 Hello.class
文件移动到新创建的包文件夹中。
(可选)编辑 Hello.class 文件以在文件开头添加包声明。例如:
package com.example;
public class Hello {
// ... your class code
}
选择正确的解决方案取决于您是否希望项目模块化。