组件详细信息-使用IntelliJ IDEA 2017.1 CE和jdk-9-ea+154
主要()-
Set<String> set2 = Set.of("a", "b", "c");
set2.forEach(System.out::println);module-info.java
module collection {
requires java.base;
}原木-
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)对于VM初始化的实现存在疑问,我的问题是我还没有包括模块jrt.fs -它是从哪里来的呢?如何调试这些模块(包括/排除)?如何进一步解决当前的异常?
发布于 2017-03-25 08:52:49
$JAVA_HOME/lib/jrt-fs.jar包含编译到JDK 8的"jrt“文件系统提供程序的一个副本,用于在JDK 8上运行但需要访问JDK 9运行时映像的IDE等工具。
从异常情况看,这个JAR文件,或者可能是$JAVA_HOME/lib,似乎被错误地放到了模块路径上。不包含顶级目录中的模块信息类的JAR文件被视为自动模块,因此这就是为什么异常在消息中有“jrt.fs模块”的原因。这个异常基本上意味着,由于将jrt-fs.jar放在模块路径上,您最终得到了包含jdk.internal.jimage.decompressor包(和许多其他包)的两个模块。
发布于 2020-07-14 15:56:45
在下,我也遇到了同样的错误。包java-openjfx将其库安装到openjdk的lib目录中,这似乎会导致问题。我找到了一个解决办法,不是添加整个lib目录,而是只添加所需的库。
在项目结构>库>+> Java >/usr/lib/jvm/默认/lib>选择所需库(持有ctrl) 应该像这样中
然后在运行配置中相应地设置VM选项。
--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对于我的项目来说,只添加控件作为模块就足够了,但是要使其运行需要基本和图形的路径。
发布于 2019-08-13 12:32:20
我在Manjaro上也有同样的问题,而它在windows上运行的很好。看看不同之处,很明显JavaFX11包安装到/lib/jvm/java-11-openjdk/lib中,然后我将其设置为PATH_TO_FX。这似乎是问题所在,因为jrt-fs.jar位于同一个文件夹中。
我将所有文件从fx移动到一个单独的文件夹,然后将其设置为PATH_TO_FX。现在它很好用。
https://stackoverflow.com/questions/42986287
复制相似问题