运行时异常:在注册表中找不到应用程序“”。

2022-09-02 08:57:51

背景

目标:我正在尝试在Windows 7 64位上安装Simics Tools for Eclipse插件。

我正在使用Eclipse Indigo for Java(64位< - 这将在以后成为一个问题),并且刚刚安装了C / C++ IDE插件,GEF draw2d插件和Simics Tools for Eclipse。成功安装这些插件后,我重新启动了 Eclipse,并继续从 Eclipse 内部启动 Simics Control。错误对话框指出此插件无法在 64 位 Eclipse 上运行。

为了解决这个问题,我决定在我当前的设置旁边安装一个32位版本的Eclipse,并从Eclipse卸载我刚刚安装的插件(C/C++,GEF和Simics)。首先,我打算删除插件以避免浪费空间。我转到帮助>关于>安装详细信息,并选择要卸载的已安装插件。删除插件似乎很成功,直到我重新启动Eclipse。

问题

删除插件后,当 Eclipse 启动时,初始屏幕将出现,底部没有进度条,以显示当前正在加载的内容。几秒钟后,初始屏幕消失,并显示一个错误对话框:发生错误。请参阅日志文件 C:\Program Files (x86)\eclipse\configuration\1322503657546.log

1322503657546.log的内容:

!SESSION 2011-11-28 12:07:37.255 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.cpp.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.cpp.product

!ENTRY org.eclipse.osgi 4 0 2011-11-28 12:07:39.521
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: Application "" could not be found in the registry. The applications available are: com.google.gwt.eclipse.core.GWTCodeFormatterApplication, com.virtutech.simics.ui.app, com.virtutech.simics.ui.appAn, com.virtutech.simics.ui.simpleSimicsApplication, org.eclipse.ant.core.antRunner, org.eclipse.ant.ui.antRunner, org.eclipse.cdt.core.GeneratePDOM, org.eclipse.datatools.connectivity.console.profile.StorageFileEditor, org.eclipse.emf.codegen.CodeGen, org.eclipse.emf.codegen.JMerger, org.eclipse.emf.codegen.ecore.Generator, org.eclipse.emf.importer.ecore.Ecore2GenModel, org.eclipse.emf.importer.java.Java2GenModel, org.eclipse.emf.importer.rose.Rose2GenModel, org.eclipse.equinox.app.error, org.eclipse.equinox.p2.director, org.eclipse.equinox.p2.garbagecollector.application, org.eclipse.equinox.p2.publisher.InstallPublisher, org.eclipse.equinox.p2.publisher.EclipseGenerator, org.eclipse.equinox.p2.publisher.ProductPublisher, org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher, org.eclipse.equinox.p2.reconciler.application, org.eclipse.equinox.p2.repository.repo2runnable, org.eclipse.equinox.p2.repository.metadataverifier, org.eclipse.equinox.p2.artifact.repository.mirrorApplication, org.eclipse.equinox.p2.metadata.repository.mirrorApplication, org.eclipse.equinox.p2.updatesite.UpdateSitePublisher, org.eclipse.equinox.p2.publisher.UpdateSitePublisher, org.eclipse.equinox.p2.publisher.CategoryPublisher, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool, org.eclipse.jdt.apt.core.aptBuild, org.eclipse.jdt.core.JavaCodeFormatter, org.eclipse.pde.build.Build, org.eclipse.pde.junit.runtime.uitestapplication, org.eclipse.pde.junit.runtime.legacytestapplication, org.eclipse.pde.junit.runtime.coretestapplication, org.eclipse.pde.junit.runtime.coretestapplicationnonmain, org.eclipse.pde.junit.runtime.nonuithreadtestapplication, org.eclipse.ui.ide.workbench, org.eclipse.uml2.uml.ecore.importer.UML2GenModel, org.eclipse.update.core.standaloneUpdate, org.eclipse.update.core.siteOptimizer, org.eclipse.wst.jsdt.core.JavaCodeFormatter, org.eclipse.wst.server.preview.preview.
    at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:248)
    at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

重要的一行似乎是搜索网络后,这似乎是一个通用错误。java.lang.RuntimeException: Application "" could not be found in the registry.

资源:

想法

  1. 删除 /eclipse/configuration 文件夹并重新启动。失败。
  2. 编辑配置.ini。我应该担心 eclipse.producteclipse.application 是空白的吗?

    配置的内容.ini:

    #This configuration file was written by:
    org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser
    #Mon Nov 28 11:18:26 CST 2011
    org.eclipse.update.reconcile=false
    eclipse.p2.profile=epp.package.jee
    osgi.instance.area.default=@user.home/workspace
    osgi.framework=file\:plugins/org.eclipse.osgi_3.7.0.v20110613.jar
    equinox.use.ds=true
    eclipse.buildId=I20110613-1736
    osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar@1\:start
    org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
    eclipse.product=
    osgi.splashPath=platform\:/base/plugins/org.eclipse.platform
    osgi.framework.extensions=reference\:file\:javax.transaction_1.1.1.v201105210645.jar
    osgi.bundles.defaultStartLevel=4
    eclipse.p2.data.area=@config.dir/../p2/
    eclipse.application=
    
  3. 编辑日食.ini。

    日食的内容.ini:

    -startup
    plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    -product
    org.eclipse.epp.package.cpp.product
    --launcher.defaultAction
    openFile
    --launcher.XXMaxPermSize
    256M
    -vmargs
    -Dosgi.requiredJavaVersion=1.5
    -Xms512m
    -Xmx1024m
    

如何再次成功启动 Eclipse?我真的宁愿不必执行干净安装,因为设置它需要很长时间。

提前致谢!


答案 1

eclipse.application= 
在配置中.ini是问题。您可以使用的默认值为
eclipse.application=org.eclipse.ui.ide.workbench

空的 eclipse.product 的计数相同

eclipse.product=org.eclipse.platform.ide

答案 2

你的第一次日食包括C / C++作为其zip的一部分,因为它是C / C++开发人员的Eclipse。这就是产品所说的。您没有单独安装 C/C++ 运行时,尽管您可能已经单独安装了源插件。但是,无论您告诉它删除配置,都抹去了该产品,现在安装已损坏。您最好的选择是将其删除并再次解压缩您的ZIP。org.eclipse.epp.package.cpp.product

其他选项:您可以使用命令行上的 p2 控制器回滚配置更改。像这样:

eclipse/eclipse -noSplash \
-application org.eclipse.equinox.p2.director \
-repository file:$(pwd)/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile \
-profile SDKProfile \
-revert 1299499722731

有关该过程的描述,请参阅 http://pweclipse.blogspot.com/2011/03/working-state-from-p2-update.html(这是一个命中或未命中命题,但可能比删除和解压缩更好)。


推荐