【发布时间】:2019-08-15 22:12:52
【问题描述】:
我需要为遗留 jar 生成 module-info 文件,该文件名为: selenium-chrome-driver-3.141.59.jar 使用命令:
jdeps --module-path modules --generate-module-info out selenium-chrome-driver-3.141.59.jar
但我得到了结果:
Missing dependence: C:\...\selenium.chrome.driver\module-info.java not generated
Error: missing dependencies
org.openqa.selenium.chrome.ChromeDriver -> com.google.common.collect.ImmutableMap not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.Capabilities not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.WebDriverException not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.html5.LocalStorage not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.html5.Location not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.html5.LocationContext not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.html5.SessionStorage not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.html5.WebStorage not found
org.openqa.selenium.chrome.ChromeDriver -> org.openqa.selenium.interactions.HasTouchScreen not found
...
jdeps --module-path modules --add-modules=ALL-MODULE-PATH --generate-module-info out selenium-chrome-driver-3.141.59.jar
然后我得到同样的错误。
作为替代方法,我尝试添加单独的模块,例如:
jdeps --module-path modules --add-modules org.openqa.selenium.chrome,org.openqa.selenium.remote --generate-module-info out selenium-chrome-driver-3.141.59.jar
我看到了这个:
Exception in thread "main" java.lang.module.FindException: Module org.openqa.selenium.chrome not found
at java.base/java.lang.module.Resolver.findFail(Resolver.java:877)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:128)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:411)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:245)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration.<init>(JdepsConfiguration.java:117)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:563)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:589)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:543)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:519)
at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)
无论我要添加哪个模块,问题始终是:
java.lang.module.FindException name_of_your_module
使用更高的级别对我也没有帮助:
jdeps --module-path modules --add-modules org.openqa.selenium --generate-module-info out selenium-chrome-driver-3.141.59.jar
错误将是:
Exception in thread "main" java.lang.module.FindException: Module org.openqa.selenium not found
at java.base/java.lang.module.Resolver.findFail(Resolver.java:877)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:128)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:411)
所以,我能做的最后一件事是手动创建模块信息并使用exports 在每个模块中写入?
更新:
jdeps -cp guava-25.0-jre.jar;selenium-api-3.141.59.jar;selenium-remote-driver-3.141.59.jar selenium-chrome-driver-3.141.59.jar
通过-cp 选项查找课程:
selenium-chrome-driver-3.141.59.jar -> guava-25.0-jre.jar
selenium-chrome-driver-3.141.59.jar -> java.base
selenium-chrome-driver-3.141.59.jar -> selenium-api-3.141.59.jar
selenium-chrome-driver-3.141.59.jar -> selenium-remote-driver-3.141.59.jar
我已添加到selenium-chrome-driver-3.141.59.jar、selenium-api-3.141.59.jar 以及guava-25.0-jre.jar 和selenium-remote-driver-3.141.59.jar。
【问题讨论】:
-
您的
jdeps命令包含选项--module-path modules- 为此,需要在您执行包含 Selenium Chrome 的所有依赖项的命令的目录中有一个文件夹modules司机。是这样吗? -
@Nicolai,例如我里面有硒 jar 文件:
C:\Users\invzbl3\Desktop\modules。我在那里使用命令jdeps --module-path modules --generate-module-info out selenium-chrome-driver-3.141.59.jar。还有Error: missing dependencies。有趣的是,它恰好发生在selenium-chrome-driver-3.141.59.jar文件中,如果我对selenium-api-3.141.59.jar执行相同的操作,它会很好地工作。我不明白有什么区别。