无法在Apache NetBeans IDE 10.0中初始化JShell

无法在Apache NetBeans IDE 10.0中初始化JShell,netbeans,java-11,jshell,Netbeans,Java 11,Jshell,我已经在macOS Mojave(版本10.14.2)上安装了OpenJDK 11(版本11.0.2)。然后,我尝试在ApacheNetBeansIDE10.0中启动一个JShell会话,但出现以下错误: | Could not initialize JShell: Launching JShell execution engine threw: Failed remote launch: java.util.concurrent.TimeoutException @ com.sun.jdi.

我已经在macOS Mojave(版本10.14.2)上安装了OpenJDK 11(版本11.0.2)。然后,我尝试在ApacheNetBeansIDE10.0中启动一个JShell会话,但出现以下错误:

|  Could not initialize JShell: Launching JShell execution engine threw: Failed remote launch: java.util.concurrent.TimeoutException @ com.sun.jdi.CommandLineLaunch (defaults: home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=, main=, suspend=true, quote=", vmexec=java) -- {home=home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=options=-classpath /Users/Steve/Apps/netbeans/java/modules/ext/nb-mod-jshell-probe.jar:, main=main=org.netbeans.lib.jshell.agent.AgentWorker 49866, suspend=suspend=true, quote=quote=", vmexec=vmexec=java}
|   caused by: Failed remote launch: java.util.concurrent.TimeoutException @ com.sun.jdi.CommandLineLaunch (defaults: home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=, main=, suspend=true, quote=", vmexec=java) -- {home=home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=options=-classpath /Users/Steve/Apps/netbeans/java/modules/ext/nb-mod-jshell-probe.jar:, main=main=org.netbeans.lib.jshell.agent.AgentWorker 49866, suspend=suspend=true, quote=quote=", vmexec=vmexec=java}
|   caused by: null
我如何解决这个问题

查看IDE中的Java平台管理器,我可以看到JDK设置正确,使用Maven的简单JavaSE应用程序编译并运行良好

更新 关于NetBeans:

Java: 11.0.2; OpenJDK 64-Bit Server VM 11.0.2+9
Runtime: OpenJDK Runtime Environment 11.0.2+9
从插件:

Java Shell
Version: 1.2.1
Source: Apache NetBeans IDE 10.0 (Build
incubator-netbeans-release-380-on-20181217)
机器上没有安装其他JDK

我可以在NetBeans终端中成功调用jshell

$ jshell                                                                                                   
|  Welcome to JShell -- Version 11.0.2
|  For an introduction type: /help intro

jshell> 
打开Java平台外壳时的IDE日志:

INFO [org.netbeans.modules.jshell.support.ShellSession]: Error in JSHell
java.util.concurrent.TimeoutException
    at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:204)
    at jdk.jshell/jdk.jshell.execution.JdiInitiator.timedVirtualMachineCreation(JdiInitiator.java:244)
    at jdk.jshell/jdk.jshell.execution.JdiInitiator.launchTarget(JdiInitiator.java:137)
Caused: java.lang.InternalError: Failed remote launch: java.util.concurrent.TimeoutException @ com.sun.jdi.CommandLineLaunch (defaults: home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=, main=, suspend=true, quote=", vmexec=java) -- {home=home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=options=-classpath /Users/Steve/Apps/netbeans/java/modules/ext/nb-mod-jshell-probe.jar:, main=main=org.netbeans.lib.jshell.agent.AgentWorker 50384, suspend=suspend=true, quote=quote=", vmexec=vmexec=java}
    at jdk.jshell/jdk.jshell.execution.JdiInitiator.reportLaunchFail(JdiInitiator.java:300)
    at jdk.jshell/jdk.jshell.execution.JdiInitiator.launchTarget(JdiInitiator.java:141)
    at jdk.jshell/jdk.jshell.execution.JdiInitiator.<init>(JdiInitiator.java:110)
    at org.netbeans.lib.nbjshell.LaunchJDIAgent.create(LaunchJDIAgent.java:217)
    at org.netbeans.lib.nbjshell.LaunchJDIAgent.access$000(LaunchJDIAgent.java:62)
    at org.netbeans.lib.nbjshell.LaunchJDIAgent$1.generate(LaunchJDIAgent.java:180)
    at org.netbeans.modules.jshell.tool.JShellLauncher$CaptureExecControl.generate(JShellLauncher.java:240)
    at jdk.jshell/jdk.jshell.JShell.<init>(JShell.java:126)
Caused: java.lang.IllegalStateException: Launching JShell execution engine threw: Failed remote launch: java.util.concurrent.TimeoutException @ com.sun.jdi.CommandLineLaunch (defaults: home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=, main=, suspend=true, quote=", vmexec=java) -- {home=home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home, options=options=-classpath /Users/Steve/Apps/netbeans/java/modules/ext/nb-mod-jshell-probe.jar:, main=main=org.netbeans.lib.jshell.agent.AgentWorker 50384, suspend=suspend=true, quote=quote=", vmexec=vmexec=java}
    at jdk.jshell/jdk.jshell.JShell.<init>(JShell.java:139)
    at jdk.jshell/jdk.jshell.JShell$Builder.build(JShell.java:405)
    at org.netbeans.modules.jshell.tool.JShellLauncher.createJShellInstance(JShellLauncher.java:258)
    at org.netbeans.modules.jshell.support.ShellSession$Launcher.createJShellInstance(ShellSession.java:624)
    at org.netbeans.modules.jshell.tool.JShellTool.resetState(JShellTool.java:745)
    at org.netbeans.modules.jshell.tool.JShellLauncher.resetState(JShellLauncher.java:207)
    at org.netbeans.modules.jshell.tool.JShellLauncher.ensureLive(JShellLauncher.java:195)
    at org.netbeans.modules.jshell.tool.JShellLauncher.getJShell(JShellLauncher.java:201)
    at org.netbeans.modules.jshell.support.ShellSession.initJShell(ShellSession.java:829)
    at org.netbeans.modules.jshell.support.ShellSession.getJShell(ShellSession.java:309)
[catch] at org.netbeans.modules.jshell.support.ShellSession.lambda$null$2(ShellSession.java:514)
    at org.netbeans.modules.jshell.model.ConsoleModel$ModelAccImpl.execute(ConsoleModel.java:1104)
    at org.netbeans.modules.jshell.support.ShellSession.lambda$start$3(ShellSession.java:510)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
    at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
    at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
INFO[org.netbeans.modules.jshell.support.ShellSession]:jshell中的错误
java.util.concurrent.TimeoutException
位于java.base/java.util.concurrent.FutureTask.get(FutureTask.java:204)
位于jdk.jshell/jdk.jshell.execution.JdiInitiator.timedVirtualMachineCreation(JdiInitiator.java:244)
位于jdk.jshell/jdk.jshell.execution.JdiInitiator.launchTarget(JdiInitiator.java:137)
原因:java.lang.InternalError:远程启动失败:java.util.concurrent.TimeoutException@com.sun.jdi.CommandLineLaunch(默认值:home=/Library/java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/home,options=,main=,suspend=true,quote=,vmexec=java)--{home=home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/home,options=options=-classpath/Users/Steve/Apps/netbeans/Java/modules/ext/nb mod jshell probe.jar:,main=main=org.netbeans.lib.jshell.agent.AgentWorker 50384,suspend=suspend=true,quote=quote=,vmexec=vmexec=Java}
jdk.jshell/jdk.jshell.execution.JdiInitiator.reportLaunchFail(JdiInitiator.java:300)
位于jdk.jshell/jdk.jshell.execution.JdiInitiator.launchTarget(JdiInitiator.java:141)
jdk.jshell/jdk.jshell.execution.JdiInitiator.(JdiInitiator.java:110)
位于org.netbeans.lib.nbjshell.LaunchJDIAgent.create(LaunchJDIAgent.java:217)
位于org.netbeans.lib.nbjshell.LaunchJDIAgent.access$000(LaunchJDIAgent.java:62)
位于org.netbeans.lib.nbjshell.LaunchJDIAgent$1.generate(LaunchJDIAgent.java:180)
位于org.netbeans.modules.jshell.tool.JShellLauncher$CaptureExecControl.generate(JShellLauncher.java:240)
jdk.jshell/jdk.jshell.jshell.(jshell.java:126)
原因:java.lang.IllegalStateException:启动JShell执行引擎引发:远程启动失败:java.util.concurrent.TimeoutException@com.sun.jdi.CommandLineLaunch(默认值:home=/Library/java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/home,options=,main=,suspend=true,quote=,vmexec=java)--{home=home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/home,options=options=-classpath/Users/Steve/Apps/netbeans/Java/modules/ext/nb mod jshell probe.jar:,main=main=org.netbeans.lib.jshell.agent.AgentWorker 50384,suspend=suspend=true,quote=quote=,vmexec=vmexec=Java}
jdk.jshell/jdk.jshell.jshell.(jshell.java:139)
位于jdk.jshell/jdk.jshell.jshell$Builder.build(jshell.java:405)
位于org.netbeans.modules.jshell.tool.JShellLauncher.createJShellInstance(JShellLauncher.java:258)
位于org.netbeans.modules.jshell.support.ShellSession$Launcher.createJShellInstance(ShellSession.java:624)
位于org.netbeans.modules.jshell.tool.JShellTool.resetState(JShellTool.java:745)
位于org.netbeans.modules.jshell.tool.JShellLauncher.resetState(JShellLauncher.java:207)
位于org.netbeans.modules.jshell.tool.JShellLauncher.ensureLive(JShellLauncher.java:195)
位于org.netbeans.modules.jshell.tool.JShellLauncher.getJShell(JShellLauncher.java:201)
位于org.netbeans.modules.jshell.support.ShellSession.initJShell(ShellSession.java:829)
位于org.netbeans.modules.jshell.support.ShellSession.getJShell(ShellSession.java:309)
[catch]位于org.netbeans.modules.jshell.support.ShellSession.lambda$null$2(ShellSession.java:514)
位于org.netbeans.modules.jshell.model.ConsoleModel$modelacimpl.execute(ConsoleModel.java:1104)
位于org.netbeans.modules.jshell.support.ShellSession.lambda$start$3(ShellSession.java:510)
位于org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
位于org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
位于org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
位于org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

这并不是一个真正的答案——更多的是要求提供更多信息——但我的问题和建议与评论不符:

  • 这对我在NetBeans 10.0上使用OpenJDK 11.0.2是有效的,尽管我在Windows 10上运行
  • 当您在NetBeans中执行有关的帮助>时,屏幕上显示的Java运行时的值是什么?显示的JDK不一定与Java Platform Manager中显示的相同:

  • 检查是否安装了JShell插件:

    • 选择工具>插件并单击已安装选项卡
    • 选中“显示详细信息”复选框,并通过单击“名称”列标题(如有必要)按字母顺序对条目进行排序
    • 向下滚动并验证是否可以选择名为Java Shell的条目。如果没有该条目,则可以解释您的问题:

  • 从您的计算机上删除任何未使用/不需要的JDK安装。由于您已经安装了JDK 11.0.2,您可能不希望或不需要在您的计算机上安装任何早期版本(除非其中一个用于运行NetBeans,如上文所述的“帮助>关于”屏幕中所示)

  • 验证是否可以使用OpenJDK 11.0.2从终端调用jshell(以确定jshell问题是否仅限于NetBeans)

最后,打开NetBeans日志(View>
WARNING [org.netbeans.core.modules]: the modules [org.netbeans.modules.java.hints, org.netbeans.modules.jshell.support, org.netbeans.modules.maven.hints, org.netbeans.modules.maven.j2ee, org.netbeans.modules.web.beans] use org.netbeans.modules.java.hints.legacy.spi which is deprecated: Use Java Hints SPI (org.netbeans.spi.java.hints) instead.
    org.netbeans.lib.nbjshell [1.6 incubator-netbeans-linux-934-on-20181203]
    org.netbeans.modules.jshell.support [1.4.0.25.55.17.1.4 incubator-netbeans-linux-934-on-20181203]
    org.netbeans.lib.nbjshell9 [1.3 incubator-netbeans-linux-934-on-20181203]
    --add-opens=jdk.jshell/jdk.jshell=ALL-UNNAMED
    --add-modules=jdk.jshell
WARNING [org.openide.loaders]: Should override getLookup() in class org.netbeans.modules.jshell.env.JShellDataObject, e.g.: [MultiDataObject.this.]getCookieSet().getLookup()
WARNING [org.openide.filesystems.Ordering]: Found same position 20,000 for both Separator-before-shell-reset.instance and jshell-reset.shadow
INFO [org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater]: Indexing of: C:\Users\johndoe\AppData\Local\NetBeans\Cache\dev\jshell\junk took: 65 ms (New or modified files: 0, Deleted files: 0) [Adding listeners took: 0 ms]
WARNING [org.openide.filesystems.Ordering]: Not all children in / marked with the position attribute: [org-netbeans-modules-lsp-client-bindings-CompletionProviderImpl.instance], but some are: [org-netbeans-modules-jshell-editor-HistoryCompletionProvider.instance, org-netbeans-modules-jshell-editor-CommandCompletionProvider.instance]
WARNING [org.openide.filesystems.Ordering]: Not all children in / marked with the position attribute: [org-netbeans-modules-lsp-client-bindings-CompletionProviderImpl.instance], but some are: [org-netbeans-modules-parsing-ui-WaitScanFinishedCompletionProvider.instance, org-netbeans-modules-editor-java-JavaCompletionProvider.instance, org-netbeans-modules-jshell-editor-HistoryCompletionProvider.instance, org-netbeans-modules-java-editor-javadoc-JavadocCompletionProvider.instance, org-netbeans-lib-editor-codetemplates-CodeTemplateCompletionProvider.instance, org-netbeans-modules-j2ee-persistence-editor-completion-JPACodeCompletionProvider.instance, org-netbeans-modules-websvc-editor-completion-WSCompletionProvider.instance, org-netbeans-modules-spellchecker-completion-WordCompletion.instance]
WARNING [org.netbeans.modules.parsing.impl.TaskProcessor]: ParserManager.parse called in AWT event thread by: org.netbeans.modules.jshell.parsing.ConsoleEmbeddingProvider.getEmbeddings(ConsoleEmbeddingProvider.java:62)
[1]-> /classpath C:\Users\brazorv\Documents\NetBeansProjects\JavaTest\dist\JavaTest.jar
|  Path 'C:\Users\brazorv\Documents\NetBeansProjects\JavaTest\dist\JavaTest.jar' added to classpath
[1]-> import javatest.JavaTest;
[2]-> JavaTest jt = new JavaTest();
|  jt ==> javatest.JavaTest@2de8284b
[3]-> jt.main(new String[]{});
[4]-> (my method just prints something on the terminal  output)