Nam*_*man 7 java intellij-idea java-platform-module-system java-9 intellij-17
组件详细信息 - 使用IntelliJ IDEA 2017.1 CE和jdk-9-ea + 154
main() -
Set<String> set2 = Set.of("a", "b", "c");
set2.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
module-info.java
module collection {
requires java.base;
}
Run Code Online (Sandbox Code Playgroud)
日志 -
Error occurred during initialization of VM
java.lang.RuntimeException: Package jdk.internal.jimage.decompressor in both module jrt.fs and module java.base
at jdk.internal.module.ModuleBootstrap.fail(java.base@9-ea/ModuleBootstrap.java:699)
at jdk.internal.module.ModuleBootstrap.boot(java.base@9-ea/ModuleBootstrap.java:329)
at java.lang.System.initPhase2(java.base@9-ea/System.java:1928)
Run Code Online (Sandbox Code Playgroud)
对VM的初始化实施感到怀疑,我的问题是我还没有包含模块jrt.fs- 图片来自哪里?如何调试此类模块包含/排除?如何进一步解决当前异常?
我在 Manjaro Linux 上遇到了同样的问题,而它在 Windows 上运行良好。查看差异后,很明显 javafx 11 包安装到 /lib/jvm/java-11-openjdk/lib 中,然后我将其设置为 PATH_TO_FX。这似乎是问题所在,因为 jrt-fs.jar 位于同一文件夹中。
我将所有文件从 fx 移动到一个单独的文件夹,然后将其设置为 PATH_TO_FX。现在它工作正常。
要解决此问题,请按照以下步骤操作。1-右键单击您的班级。2 - 运行 AS -> 运行配置 3. 单击 main -> 单击 Browse 选项并在项目中选择您的项目名称。单击“应用”按钮,处理后单击“运行”按钮。
小智 6
我在 Arch Linux 下遇到了同样的错误。该包java-openjfx将其库安装到 的 lib 目录中openjdk,这似乎会导致问题。我找到了一种解决方法,不是添加整个 lib 目录,而是只添加所需的库。
在项目结构 > 库 > + > Java > /usr/lib/jvm/default/lib > 选择需要的库(按住 ctrl) 应该看起来像这样
然后在运行配置中相应地设置虚拟机选项
--module-path /usr/lib/jvm/java-14-openjdk/lib/javafx.base.jar:/usr/lib/jvm/java-14-openjdk/lib/javafx.controls.jar:/usr/lib/jvm/java-14-openjdk/lib/javafx.graphics.jar --add-modules=javafx.controls
Run Code Online (Sandbox Code Playgroud)
对于我的项目,仅将控件添加为模块就足够了,但需要基础和图形的路径才能使其运行。
$ JAVA_HOME/lib/jrt-fs.jar包含编译到JDK 8的"jrt"文件系统提供程序的副本.它适用于在JDK 8上运行但需要访问JDK 9运行时映像的IDE等工具.
从异常开始,看起来这个JAR文件,或者可能是$ JAVA_HOME/lib,已经错误地放在了模块路径上.在顶级目录中不包含module-info.class的JAR文件被视为自动模块,因此这就是消息中异常具有"module jrt.fs"的原因.异常基本上只是意味着你最终得到了两个包含jdk.internal.jimage.decompressor包(以及许多其他包)的模块,因为它将jrt-fs.jar放在模块路径上.
| 归档时间: |
|
| 查看次数: |
8257 次 |
| 最近记录: |