当前位置: 首页 > 知识库问答 >
问题:

尝试解析OpenJFX jmods时,jdeps命令失败

齐起运
2023-03-14

我试图在使用OpenJFX的项目上运行jdeps命令,但一直失败。

我正在使用的命令尽可能简化:

jdeps --module-path Y:\javafx-jmods-11.0.2 --add-modules javafx.base Test.jar

javafx-jmods-11.0。2是包含OpenJFX jmod文件的目录。

当我运行此命令时,会出现以下错误:

Exception in thread "main" java.lang.module.FindException: Module javafx.base 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)

有人有什么想法或建议为什么它找不到位于Y:\javafx-jmods-11.0.2中的javafx.base模块吗?

共有1个答案

金赤岩
2023-03-14

通常,当您出现错误时:

java.lang.module.找不到模块

这意味着模块路径错误(没有有效路径),或者您提供的路径不包含所需的模块。

正如您在关于在JDK 11上运行javafx示例并在模块路径上使用OpenJFX 11 JMODS的回答中所看到的:

这里说明:http://openjdk.java.net/jeps/261#Packaging:-JMOD文件:

JMODhtml" target="_blank">文件可以在编译时和链接时使用,但不能在运行时使用。要在运行时支持它们,通常需要我们随时准备提取和链接本机代码库。

这意味着不能将jmods与jdep结合使用。

解决方案

在这种情况下,解决方案很简单:使用JavaFXSDK中的JAR,而不是jmods:

jdeps --module-path Y:\javafx-sdk-11.0.2\lib --add-modules javafx.base Test.jar
 类似资料:
  • 有没有人知道Flyway解析器出了什么问题,或者可以为我提供一个变通方法?

  • 问题内容: 我正在使用以下时间戳格式: 以下方法可以正常工作: 而且,当我使用该格式字符串传递时间戳时,它返回,例如: 然后,我需要再次从该字符串映射到时间戳,本质上是相反的操作。我知道我可以使用和及其方法,但是如果可能的话,我宁愿坚持使用样式格式。 我写了这段代码(相当hacky),它适用于某些格式,但不适用于特定格式: 在第二部分,它失败了。 堆栈跟踪: 有没有一种更简单的方法可以在不利用我的

  • PS C:\用户\\桌面\实时聊天应用程序\nodeserver>nodemon index.js 这是错误nodemon:文件C:\users\\appdata\roaming\npm\nodemon.ps1无法加载,因为在此系统上禁用了运行脚本。有关详细信息,请参阅https://go.microsoft.com/fwlink/?LinkId=135170上的about_Execution_P

  • gradlew测试命令在CircleCI上失败。当我在本地执行相同的命令时,它工作正常,所有的测试用例都通过了。我附上yml文件,从CircleCI和我的测试类日志。 这是我的yml文件。 当我检查CircleCI的日志时,这些日志是: 执行转换IdtyTransform- com . mind valley . MVA . log in module . loginactivitytest co

  • 一、前言 从我们上一章《Memcached源码分析 - Memcached源码分析之基于Libevent的网络模型(1)》我们基本了解了Memcached的网络模型。这一章节,我们需要详细解读Memcached的命令解析。 我们回顾上一章发现Memcached会分成主线程和N个工作线程。主线程主要用于监听accpet客户端的Socket连接,而工作线程主要用于接管具体的客户端连接。 主线程和工作线

  • 我需要通过改造应用编程接口刷新令牌。我想在拦截器中这样做。但是当我运行应用程序时,它不能完成请求。它返回HTTP FAILED:java.lang.IllegalStateExctive:关闭。我研究了很多信息,但我找不到解决方案。 我的客户 我的AuthInterceptor我用它来刷新代币