从Java 9开始,引入了模块系统,从而使JRE的单独提供变得多余。
通过,似乎仍然可以下载它。例如,现在从这里开始Java 9存档 此外,这里仅指出:
重组JDK和JRE运行时映像,以明确区分开发人员,部署人员和最终用户可以依赖并适当修改的文件,与实现内部的文件相反,这些文件可以更改而无需更改注意。
新的映像结构消除了这种区别:JDK映像只是运行时映像,恰好包含JDK历史上发现的全套开发工具和其他项目。
因此,没有谈论彻底清除。来自:jdk-9
当您安装jdk-9时,public jre-9也将自动安装。
另外,我还以为从Java 9开始就应该始终使用jlink创建自定义运行时,但是现在看来似乎只从Java 11开始执行。从Java 11的发行说明中可以看出,Oracle JDK发行说明:
在Windows和macOS中,安装早期版本中的JDK可以选择安装JRE。在JDK 11中,这不再是一个选项。在此版本中,不再提供JRE或Server JRE。仅提供JDK。用户可以使用jlink创建较小的自定义运行时。
但是随后我可以找到很多类似的讨论:
是这种情况,并且从Java 11开始就无法直接下载JRE ?还是在Oracle和OpenJDK之间混合实现?还是上述讨论引起误解?
编辑:我不需要下载jre,我可以通过jlink创建它或使用已经可用的解决方案,我的问题更多是理论上的。
我正在将 pycharm 与 intellibot 和机器人框架插件一起使用。突然间,关键字变得不确定,例如“点击元素”。但其他机器人框架库运行良好。
com.intellij.diagnostic.PluginException: getComponentAdapterOfType is used to get com.intellij.psi.impl.PsiManagerImpl (requestorClass=com.millennialmedia.intellibot.psi.RobotPsiManager, requestorConstructor=public com.millennialmedia.intellibot.psi.RobotPsiManager(com.intellij.psi.impl.PsiManagerImpl)).
Probably constructor should be marked as NonInjectable. [Plugin: com.millennialmedia.intellibot]
at com.intellij.serviceContainer.ConstructorParameterResolver.findTargetAdapter(ConstructorParameterResolver.kt:111)
at com.intellij.serviceContainer.ConstructorParameterResolver.resolveInstance(ConstructorParameterResolver.kt:59)
at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:45)
at com.intellij.serviceContainer.PlatformComponentManagerImpl.instantiateClassWithConstructorInjection(PlatformComponentManagerImpl.kt:505)
at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:35)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
at com.intellij.serviceContainer.PlatformComponentManagerImpl.createComponents(PlatformComponentManagerImpl.kt:177)
at com.intellij.openapi.project.impl.ProjectImpl.init(ProjectImpl.java:295)
at com.intellij.openapi.project.impl.ProjectManagerImpl.initProject(ProjectManagerImpl.java:315)
at com.intellij.openapi.project.impl.ProjectManagerImpl.convertAndLoadProject(ProjectManagerImpl.java:624)
at com.intellij.platform.PlatformProjectOpenProcessor.prepareProject(PlatformProjectOpenProcessor.java:315)
at com.intellij.platform.PlatformProjectOpenProcessor.lambda$openExistingProject$0(PlatformProjectOpenProcessor.java:241)
at com.intellij.platform.ProjectUiFrameAllocator$run$1$1.run(ProjectFrameAllocator.kt:77)
at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:247)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:888)
at com.intellij.openapi.progress.impl.CoreProgressManager$5.run(CoreProgressManager.java:441)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$null$4(ApplicationImpl.java:441)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:221)
at com.intellij.util.ConcurrencyUtil.lambda$underThreadNameRunnable$3(ConcurrencyUtil.java:209)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:238)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) …Run Code Online (Sandbox Code Playgroud)