当前位置: 首页 > 面试题库 >

Eclipse 2018-09使用Java 11插件进入了无限的构建循环:ClosedFileSystemException

姚胡媚
2023-03-14
问题内容

我正在Windows 10上运行Eclipse 2018-09(4.9.0),正在使用Open JDK 11 GA。我有一个使用Java
8兼容源代码的项目,该项目可以使用Eclipse和Maven的JDK很好地进行编译。

我想使用Java 11的新功能,因此首先我将编译器源/目标从Java
8更改为Java11。它仍然在命令行上使用Maven构建了find,但是无法在Eclipse中进行编译(请参见Eclipse2018-09不能编译Java 11源代码;认为它低于1.7)。

因此,我从Eclipse Marketplace中添加了“ Java 11 Support for Eclipse
2018-09”插件。我重新启动了Eclipse,并用来Alt+F5刷新我的Maven项目。Eclipse然后尝试重建项目。

现在,Eclipse进入了一个无休止的循环,在8X%的完成率到9X%的完成率之间跳跃,并出现了反复的无尽错误,例如:

!SESSION 2018-09-27 08:08:51.188 -----------------------------------------------
eclipse.buildId=4.9.0.I20180906-0745
java.version=11
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

This is a continuation of log file …\.metadata\.bak_0.log
Created Time: 2018-09-27 08:11:22.981

!ENTRY org.eclipse.core.resources 4 2 2018-09-27 08:11:22.981
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.nio.file.ClosedFileSystemException
  at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.ensureOpen(ZipFileSystem.java:1105)
  at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.checkAccess(ZipFileSystem.java:332)
  at jdk.zipfs/jdk.nio.zipfs.ZipPath.checkAccess(ZipPath.java:830)
  at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.checkAccess(ZipFileSystemProvider.java:185)
  at java.base/java.nio.file.Files.exists(Files.java:2439)
  at org.eclipse.jdt.internal.core.builder.ClasspathMultiReleaseJar.findClass(ClasspathMultiReleaseJar.java:206)
  at org.eclipse.jdt.internal.core.builder.ClasspathLocation.findClass(ClasspathLocation.java:58)
  at org.eclipse.jdt.internal.core.builder.NameEnvironment.findClass(NameEnvironment.java:524)
  at org.eclipse.jdt.internal.core.builder.NameEnvironment.findType(NameEnvironment.java:556)
  at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.fromSplitPackageOrOracle(LookupEnvironment.java:414)
  at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.lambda$1(LookupEnvironment.java:289)
  at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:384)
  at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:288)
  at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:262)
  at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:530)
  at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.checkAndSetImports(CompilationUnitScope.java:254)
  at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:501)
  at org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:868)
  at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:394)
  at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
  at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:426)
  at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:386)
  at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:214)
  at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:318)
  at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:79)
  at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:265)
  at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:185)
  at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:798)
  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
  at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:219)
  at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:262)
  at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:315)
  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
  at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:318)
  at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:370)
  at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:391)
  at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:145)
  at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

无法阻止它。至少Eclipse不会冻结,因此我点击了应用程序标题栏上的“关闭”按钮,并设法退出了程序。我可以重新进入程序,但是当我尝试构建它时,它会进入相同的无穷循环。


问题答案:

如错误539536中所述,此问题已在Java
11支持补丁的最新版本中得到修复。该问题是由从 ZipFilejava.nio 类的迁移引起的,目前已恢复更改,但在撰写本文时仍在讨论中。

要安装此修补程序,请在Eclipse中使用以下更新站点,然后选择 v20181001-0921
或更新的版本:http
:
//download.eclipse.org/eclipse/updates/4.9-P-builds/P20181001-0525/



 类似资料:
  • 问题内容: 我一直在使用React 16.7-alpha中的新钩子系统,并且当我正在处理的状态是对象或数组时陷入useEffect的无限循环中。 首先,我使用useState并使用一个空对象启动它,如下所示: 然后,在useEffect中,我再次使用setObj将其设置为空对象。作为第二个参数,我传递了[obj],希望如果对象的 内容 没有更改,它也不会更新。但是它一直在更新。我猜是因为不管内容如

  • 问题内容: 我正在使用以下代码: 但是,如果我输入“ w”,它将告诉我“您输入的输入无效。请重试。” 然后它将进入无限循环,显示文本“指定0到5之间的整数:您输入的输入无效。请重试。” 为什么会这样呢?该程序不是应该等待用户输入并在每次到达该语句时按Enter键: 问题答案: 在最后一个块中,您需要清除“ w”或来自扫描仪的其他无效输入。您可以通过调用Scanner并忽略其返回值来丢弃该无效输入来

  • 我已经从android开发者网站下载了最新的用于mac的adt包。我创建了一个连接到主项目的库项目,突然,Eclipse开始唠叨起来!我检查了构建进度,发现构建过程在40-50%时重新开始。 我截取了一张截图: 有些人建议禁用。这样做之后,项目就可以构建并运行了,但我必须在每一个微小的更改之后手动构建,这很无聊。 我使用的是< code > Eclipse IDE for Android Deve

  • 问题内容: 我正在解析(种类)表格的名称: 通常有两个项(二项式),但有时有3个或更多。 我写 大部分时间都有效,但偶尔会陷入无限循环。花了一些时间来查找正则表达式匹配中的内容,然后我才意识到这是一个错字,我应该写 正确执行。 我的问题是: 为什么会发生这种循环? 有没有办法在运行程序之前检查类似的正则表达式错误?否则,可能很难在prgram分发之前就将它们捕获并引起问题。 [注意:我不需要物种的

  • 问题内容: 当我在 while循环中 使用 try和catch 块时,我的程序有一个无限 循环 。 当我输入一个整数时,它运行良好并要求另一个输入,但是当我输入一个字符时,它将进入无穷循环。为什么会这样呢? 问题答案: 遇到无效输入时,由于nextInt()不使用无效令牌,因此程序进入无限循环。因此,导致该异常的任何令牌都将保留在该位置,并在下次尝试使用nextInt()时继续引发异常。 可以通过

  • 我正在尝试执行下面列出的5条规则- 假设有两个实体——实体1和实体2。实体1包含3个日期类型变量——Date1、Date2、Date3实体2包含一个日期类型变量——Date4 规则1-如果日期1 过了一会儿,我注意到日志在增长,系统内存不足。 再深入一点,我在org上启用了跟踪。drools软件包,发现规则正在循环中,没有停止。 我正在使用Drools Workbench 7.2.0 Final