组件详细信息 - 使用 IntelliJ IDEA 2017.1 CE 和 jdk-9-ea + 154
main() -
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)
对于初始化虚拟机的实施感到怀疑,我的问题是我没有包含模块jrt.fs
- 图片来自哪里?如何调试此类模块包含/排除?如何进一步解决当前异常?
答案 0 :(得分:5)
$ JAVA_HOME / lib / jrt-fs.jar包含&#34; jrt&#34;的副本文件系统提供程序编译为JDK 8.它适用于在JDK 8上运行但需要访问JDK 9运行时映像的IDE等工具。
从异常中可以看出,这个JAR文件,或者可能是$ JAVA_HOME / lib,已经错误地放在了模块路径上。在顶级目录中不包含module-info.class的JAR文件被视为自动模块,因此这就是异常具有&#34;模块jrt.fs&#34;在消息中。这个例外基本上只是意味着你最终得到了两个包含jdk.internal.jimage.decompressor包(以及许多其他包)的模块,因为它们将jrt-fs.jar放在模块路径上。
答案 1 :(得分:3)
在Manjaro Linux上,我遇到了同样的问题,但是在Windows上却可以正常工作。查看这些差异,可以清楚地看到javafx 11软件包安装在/ lib / jvm / java-11-openjdk / lib中,然后将其设置为PATH_TO_FX。这似乎是问题所在,因为jrt-fs.jar位于同一文件夹中。
我将所有文件从fx移到了单独的文件夹,然后将其设置为PATH_TO_FX。现在可以正常工作了。
答案 2 :(得分:3)
在Arch Linux下,我遇到了同样的错误。软件包java-openjfx
将其库安装到openjdk
的lib目录中,这似乎会引起问题。
我找到了一种解决方法,方法是不添加整个lib目录,而是仅添加所需的库。
在项目结构中>库> +> Java> / usr / lib / jvm / default / lib>选择所需的库(保存ctrl) should look something like this
然后在“运行配置”中相应地设置虚拟机选项
--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
对于我的项目,仅将控件添加为模块就足够了,但要使其运行就需要基本和图形的路径。
答案 3 :(得分:2)
尝试从jdk9目录中删除jrt-fs.jar。我在IntelliJ IDEA的Project Structure中做到了,它对我来说很好用
答案 4 :(得分:1)
我在Spring Toolsuite 4上遇到了这个问题,元数据包含有关工作区中当前项目的信息,以及常见的eclipse设置(如字体,代码样式,运行配置设置),有时还包含有关所用模块,eclipse插件和eclipse日志文件的信息。蚀日志错误等。
它不包含有价值的项目信息。
如果手动删除或更改此文件夹,则eclipse会将其视为新的工作区。您必须再次导入现有项目,然后完成。
如果要保留字体,代码样式等,则可以为新的工作区导出/导入这些首选项,或创建.metadata的备份。
在我的情况下,当我删除 .metadata 文件夹时,该问题适用于上述问题将模块jrt.fs和模块java.base 中的jdk.internal.jimage.decompressor打包,再次导入项目,设置运行配置,一切开始正常工作。
答案 5 :(得分:0)
在Eclipse中,更改Eclipse工作区或删除工作区文件夹中的.metadata文件夹对我来说是有效的。
我不知道该怎么修复,但是如果我不得不猜测它可能是导致该异常的.metadata文件夹中的某个东西。
答案 6 :(得分:0)
删除.metadata文件夹,然后重新启动eclipse。
答案 7 :(得分:0)
要解决此问题,请按照以下步骤操作。 1-右键单击您的班级。 2-运行AS->运行配置 3.单击主菜单-> 单击浏览选项,然后在项目中选择您的项目名称。 单击“应用”按钮,并在处理后单击“运行”按钮。
答案 8 :(得分:0)
在Mac Eclipse版本:2020-09(4.17.0)上,我遇到了同样的问题
每当我尝试运行现有配置时,都会出现该错误。 我尝试了各种解决方法,但没有任何效果。
所以我创建了一个新的配置:
一切正常。这样做的好处是它不会修改您的JDK安装。