Не удалось инициализировать JShell в IDE Apache NetBeans 10.0 - PullRequest
0 голосов
/ 24 января 2019

Я установил OpenJDK 11 (версия 11.0.2) на MacOS Mojave (версия 10.14.2), выполнив эти шаги .Затем я попытался запустить JShell сеанс в Apache NetBeans IDE 10.0 , но я получаю эту ошибку:

|  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

Как устранить проблему?

Глядя на диспетчер платформ Java в IDE, я вижу, что JDK установлен правильно, а простое приложение Java SE с использованием Maven компилируется и работает нормально.

Обновление

Из О 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.

Я могу вызвать jshell успешно в терминале NetBeans:

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

jshell> 

Журнал IDE при открытии оболочки Java Platform:

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)

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Я также не смог выполнить JavaShell для проекта, новые Netbeans разбиты почти на все, что не является компиляцией простого проекта Java или Maven, но для тестирования огромной библиотеки без документации мне пришлось решить эту проблему.

В качестве обходного пути я сделал эти шаги (та же конфигурация NB / JRE, что и у вас):

  1. откройте оболочку платформы из меню инструменты> открыть оболочку платформы Java вместо непосредственного ее запуска из проекта
  2. импортируйте нужную мне библиотеку в путь к классам.

Следует примеру.

[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)

Вот и все. Я надеюсь, что это полезно.

0 голосов
/ 25 января 2019

Это на самом деле не ответ - это скорее запрос на дополнительную информацию, но мои вопросы и предложения не вписываются в комментарии:

  • Это работает для меня, используя OpenJDK 11.0.2 в NetBeans 10.0, хотя я работаю в Windows 10.
  • Какие значения отображаются на экране для Java и Время выполнения при выполнении Справка> О в NetBeans? Отображаемый JDK не обязательно будет таким, как показано в Диспетчер платформы Java :

    helpAbout

  • Убедитесь, что плагин JShell установлен:

    • Выберите Инструменты> Плагины и перейдите на вкладку Установлено .
    • Установите флажок Показать сведения и отсортируйте записи в алфавитном порядке, щелкнув заголовок столбца Имя (при необходимости).
    • Прокрутите вниз и убедитесь, что вы можете выбрать запись с именем Java Shell . Его отсутствие объяснит вашу проблему:

      installedPlugins

  • Удалите все неиспользуемые / нежелательные установки JDK с вашего компьютера. Поскольку вы установили JDK 11.0.2, вы, вероятно, не хотите или не нуждаетесь в более ранних версиях на вашем компьютере (если только одна из них не используется для запуска NetBeans, как показано на экране Help> About , как описано выше). ).

  • Убедитесь, что вы можете вызывать jshell из вашего терминала , используя OpenJDK 11.0.2 (чтобы определить, связана ли проблема jshell с NetBeans) .

Наконец, в качестве проверки работоспособности откройте журнал NetBeans ( View> IDE Log ) и просмотрите его на наличие проблем, связанных с jshell . Обновите свой вопрос, если найдете что-нибудь. Эти строки в моем журнале содержали « jshell », и, надеюсь, вы увидите нечто похожее:

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)
...