Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;应用程序无法启动";运行插件时,会生成堆栈跟踪,但不会生成调试会话_Java_Eclipse_Eclipse Pde - Fatal编程技术网

Java &引用;应用程序无法启动";运行插件时,会生成堆栈跟踪,但不会生成调试会话

Java &引用;应用程序无法启动";运行插件时,会生成堆栈跟踪,但不会生成调试会话,java,eclipse,eclipse-pde,Java,Eclipse,Eclipse Pde,我正在修复一个旧的Eclipse插件,以便它在Neon中运行。我按照通过文件->导入…导入了依赖项,修复了所有剩余的编译错误,现在准备尝试一下 然而,当我以…身份调试“Eclipse应用程序”或“OSGi框架”时,它会给我一个“应用程序无法启动”错误对话框,然后,根据我的选择,会出现两个堆栈跟踪 但那没用我需要进行一次调试会话,这样我就可以检查变量并尝试推断出错误所在('z因为我不熟悉常见的Eclipse插件堆栈跟踪,所以只能通过查看它来说明这个特定的跟踪意味着什么) 乍一看,设置看起来不错:

我正在修复一个旧的Eclipse插件,以便它在Neon中运行。我按照通过
文件->导入…
导入了依赖项,修复了所有剩余的编译错误,现在准备尝试一下

然而,当我
以…
身份调试“Eclipse应用程序”或“OSGi框架”时,它会给我一个“应用程序无法启动”错误对话框,然后,根据我的选择,会出现两个堆栈跟踪

但那没用我需要进行一次调试会话,这样我就可以检查变量并尝试推断出错误所在('z因为我不熟悉常见的Eclipse插件堆栈跟踪,所以只能通过查看它来说明这个特定的跟踪意味着什么)


乍一看,设置看起来不错:

  • 子进程从命令行“C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe”-agentlib:jdwp=transport=dt\u socket,suspend=y,address=localhost:50467-Declipse.pde.launch=true-Dfile.encoding=UTF-8-classpath“C:\Users\Ivan\.p2\pool\plugins\org.eclipse.equinox.launcher\u 1.3.201.v20161025-1711.jar”开始org.eclipse.equinox.launcher.Main-启动器“C:\Users\Ivan\eclipse\committers neon\eclipse\eclipse.exe”-名称eclipse-showsplash 600-product org.eclipse.platform.ide-数据“C:\Users\Ivan\workspace antlr/。/runtime-New\u配置”-配置文件:C:/Users/Ivan/workspace-antlr/.metadata/.plugins/org.eclipse.pde.core/New_-configuration/-dev文件:C:/Users/Ivan/workspace-antlr/.metadata/.plugins/org.eclipse.pde.core/New_-configuration/dev.properties-os-win32-ws-32-arch x86_64-nl en_-consoleLog,看起来不错(“新_-configuration”启动配置的类型为“Eclipse应用程序”)

  • 一切就绪


堆栈跟踪:

在控制台窗格中:

java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(Unknown Source)
    at java.util.AbstractList.add(Unknown Source)
    at org.eclipse.osgi.storage.FrameworkExtensionInstaller.getExtensionFiles(FrameworkExtensionInstaller.java:152)
    <...>
    at org.eclipse.osgi.storage.Storage.installExtensions(Storage.java:194)
    at org.eclipse.osgi.storage.Storage.createStorage(Storage.java:92)
    at org.eclipse.osgi.internal.framework.EquinoxContainer.<init>(EquinoxContainer.java:66)
    at org.eclipse.osgi.launch.Equinox.<init>(Equinox.java:31)
    <...>
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
.log
中:

!SESSION 2017-03-14 02:11:24.862 -----------------------------------------------
eclipse.buildId=4.6.2.M20161124-1400
java.version=1.8.0_121
<...>
Command-line arguments:  -product org.eclipse.platform.ide -data C:\Users\Ivan\workspace-antlr/../runtime-New_configuration -dev file:C:/Users/Ivan/workspace-antlr/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog

!ENTRY org.eclipse.equinox.ds 1 0 2017-03-14 02:11:30.571
!MESSAGE Could not bind a reference of component org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery. The reference is: Reference[name = RemoteServiceAdmin, interface = org.osgi.service.remoteserviceadmin.RemoteServiceAdmin, policy = dynamic, cardinality = 0..1, target = null, bind = bindRemoteServiceAdmin, unbind = unbindRemoteServiceAdmin]

!ENTRY org.eclipse.equinox.ds 1 0 2017-03-14 02:11:30.579
!MESSAGE Could not bind a reference of component org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery. The reference is: Reference[name = IEndpointDescriptionLocator, interface = org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionLocator, policy = dynamic, cardinality = 0..1, target = null, bind = bindEndpointDescriptionLocator, unbind = unbindEndpointDescriptionLocator]

!ENTRY org.eclipse.egit.ui 2 0 2017-03-14 02:12:17.143
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used <...>: 'C:\Users\Ivan'.

!ENTRY org.eclipse.oomph.setup.ui 2 0 2017-03-14 02:12:19.584
!MESSAGE java.lang.NullPointerException
!STACK 0
java.lang.NullPointerException
    at org.eclipse.oomph.setup.ui.SetupUIPlugin.performStartup(SetupUIPlugin.java:443)
    at org.eclipse.oomph.setup.ui.SetupUIPlugin.access$5(SetupUIPlugin.java:414)
    at org.eclipse.oomph.setup.ui.SetupUIPlugin$1$1.run(SetupUIPlugin.java:253)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.oomph.setup.ui 1 0 2017-03-14 02:12:22.650
!MESSAGE Setup tasks were performed during startup updating 5 preferences. See 'C:\Users\Ivan\workspace-antlr\.metadata\.plugins\org.eclipse.pde.core\New_configuration\org.eclipse.oomph.setup\setup.log' for details
!会议2017-03-14 02:11:24.862-----------------------------------------------
eclipse.buildId=4.6.2.M20161124-1400
java.version=1.8.0_121
命令行参数:-product org.eclipse.platform.ide-data C:\Users\Ivan\workspace-antlr/。/runtime-New\u配置-dev文件:C:/Users/Ivan/workspace-antlr/.metadata/.plugins/org.eclipse.pde.core/New\u配置/dev.properties-os win32-ws win32-arch x86\u 64-consoleLog
!条目org.eclipse.equinox.ds 1 0 2017-03-14 02:11:30.571
!消息无法绑定组件org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery的引用。引用是:reference[name=RemoteServiceAdmin,interface=org.osgi.service.RemoteServiceAdmin.RemoteServiceAdmin,policy=dynamic,cardinality=0..1,target=null,bind=bindmoteserviceadmin,unbind=unbindmoteserviceadmin]
!条目org.eclipse.equinox.ds 1 0 2017-03-14 02:11:30.579
!消息无法绑定组件org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery的引用。引用是:reference[name=IEndpointDescriptionLocator,interface=org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionLocator,policy=dynamic,cardinality=0..1,target=null,bind=bindEndpointDescriptionLocator,unbind=unbindPointDescriptionLocator]
!条目org.eclipse.egit.ui 20 2017-03-14 02:12:17.143
!消息警告:未设置环境变量HOME。将使用以下目录:“C:\Users\Ivan”。
!条目org.eclipse.oomph.setup.ui 20 2017-03-14 02:12:19.584
!消息java.lang.NullPointerException
!堆栈0
java.lang.NullPointerException
在org.eclipse.oomph.setup.ui.SetupUIPlugin.performStartup(SetupUIPlugin.java:443)
访问org.eclipse.oomph.setup.ui.SetupUIPlugin.access$5(SetupUIPlugin.java:414)
位于org.eclipse.oomph.setup.ui.SetupUIPlugin$1$1.run(SetupUIPlugin.java:253)
位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
!条目org.eclipse.oomph.setup.ui 1 0 2017-03-14 02:12:22.650
!启动更新5个首选项期间执行了消息设置任务。有关详细信息,请参阅“C:\Users\Ivan\workspace antlr\.metadata\.plugins\org.eclipse.pde.core\New\u configuration\org.eclipse.oomph.setup\setup.log”


我主要感兴趣的是如何进入调试器。如果你能帮我解决这个特定错误,我很可能马上会遇到另一个错误。

看起来这可能是Oomph安装程序代码中的Eclipse错误。该bug被标记为已修复且已关闭,但不清楚它在哪个Eclipse版本中(可能是4.6.3,不久将发布)


一个可能的解决方法是使用一个基于不使用Oomph的简单Eclipse安装的目标平台。这些都可以找到

能够通过捕获
UnsupportedOperationException
来获取调试会话,特别是已处理和未处理(这是控制台窗格中的异常)。将问题跟踪到
org.eclipse.osgi.storage.FrameworkExtensionInstaller::getExt‌​ensionFiles()
-在开发模式下加载插件时,它会尝试写入只读列表。

这在技术上是以前的做法。但这仍然无法揭示调试器未捕获异常的原因。它不是应该捕获子进程中的任何地方的异常吗(因为它是用
-agentlib:jdwp
运行的)?是因为问题出在启动的Eclipse实例中,而不是启动的Eclipse实例中?或者异常实际上是由某个对象处理的,因此“catch unhandled”标志不适用?Eclipse通常捕获所有异常,以便记录它们。能够通过捕获
UnsupportedOperationException
来获取调试会话(已处理和未处理)。将问题跟踪到
org.eclipse.osgi.storage.FrameworkExtensionInstaller::getExtensionFiles()
——在开发模式下加载插件时,它尝试写入只读列表。
!SESSION 2017-03-14 02:11:24.862 -----------------------------------------------
eclipse.buildId=4.6.2.M20161124-1400
java.version=1.8.0_121
<...>
Command-line arguments:  -product org.eclipse.platform.ide -data C:\Users\Ivan\workspace-antlr/../runtime-New_configuration -dev file:C:/Users/Ivan/workspace-antlr/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog

!ENTRY org.eclipse.equinox.ds 1 0 2017-03-14 02:11:30.571
!MESSAGE Could not bind a reference of component org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery. The reference is: Reference[name = RemoteServiceAdmin, interface = org.osgi.service.remoteserviceadmin.RemoteServiceAdmin, policy = dynamic, cardinality = 0..1, target = null, bind = bindRemoteServiceAdmin, unbind = unbindRemoteServiceAdmin]

!ENTRY org.eclipse.equinox.ds 1 0 2017-03-14 02:11:30.579
!MESSAGE Could not bind a reference of component org.eclipse.ecf.mgmt.rsa.discovery.ui.discovery. The reference is: Reference[name = IEndpointDescriptionLocator, interface = org.eclipse.ecf.osgi.services.remoteserviceadmin.IEndpointDescriptionLocator, policy = dynamic, cardinality = 0..1, target = null, bind = bindEndpointDescriptionLocator, unbind = unbindEndpointDescriptionLocator]

!ENTRY org.eclipse.egit.ui 2 0 2017-03-14 02:12:17.143
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used <...>: 'C:\Users\Ivan'.

!ENTRY org.eclipse.oomph.setup.ui 2 0 2017-03-14 02:12:19.584
!MESSAGE java.lang.NullPointerException
!STACK 0
java.lang.NullPointerException
    at org.eclipse.oomph.setup.ui.SetupUIPlugin.performStartup(SetupUIPlugin.java:443)
    at org.eclipse.oomph.setup.ui.SetupUIPlugin.access$5(SetupUIPlugin.java:414)
    at org.eclipse.oomph.setup.ui.SetupUIPlugin$1$1.run(SetupUIPlugin.java:253)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.oomph.setup.ui 1 0 2017-03-14 02:12:22.650
!MESSAGE Setup tasks were performed during startup updating 5 preferences. See 'C:\Users\Ivan\workspace-antlr\.metadata\.plugins\org.eclipse.pde.core\New_configuration\org.eclipse.oomph.setup\setup.log' for details