【问题标题】:Installing Eclipse PDE Plugin in Windows在 Windows 中安装 Eclipse PDE 插件
【发布时间】:2020-11-11 09:32:04
【问题描述】:

我很难让我的 Eclipse PDE 插件在 Windows 环境中工作。我创建了一个使用外部 jar 的 Eclipse PDE 插件。我能够在我的 MacBook(macOS Catalina 10.15)上将插件安装到我的 Eclipse IDE,方法是右键单击项目,然后导出>可部署的插件和片段>安装到主机存储库>完成。主机存储库的路径是/Users/username/eclipse-workspace/.metadata/.plugins/org.eclipse.pde.core/install/。选项类别中选择的属性如下图所示:

插件安装成功,点击按钮即可在我的IDE中运行。

当我在 Windows 10 中重复这些步骤时,插件会安装。我可以单击一个按钮来打开我开发的窗口,但是当我单击触发依赖外部 jar 的功能的“开始”按钮时,什么也没有发生。尽管代码与 Mac 中使用的代码相同,但该按钮的行为就好像它没有连接到任何功能一样。 有谁知道为什么 Eclipse 无法访问 Windows 中必要的 jar?

我在下面附上了我的构建属性的屏幕截图。请注意,jar 保存在名为“lib”的目录中,该目录与 eclipse 插件项目中的 /src 目录处于同一级别。

source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
               META-INF/,\
               .,\
               icons/,\
               lib/commons-io-2.6.jar,\
               lib/daffodil-io_2.12-2.5.0.jar,\
               lib/daffodil-japi_2.12-2.5.0.jar,\
               lib/daffodil-lib_2.12-2.5.0.jar,\
               lib/daffodil-runtime1_2.12-2.5.0.jar,\
               lib/daffodil-runtime1-unparser_2.12-2.5.0.jar,\
               lib/daffodil-udf_2.12-2.5.0.jar,\
               lib/icu4j-62.1.jar,\
               lib/jackson-core-2.9.6.jar,\
               lib/jdom2-2.0.6.jar,\
               lib/jline-2.14.6.jar,\
               lib/scala-library-2.12.6.jar,\
               lib/scala-parser-combinators_2.12-1.1.1.jar,\
               lib/scala-xml_2.12-1.1.0.jar,\
               lib/stax2-api-4.1.jar,\
               lib/daffodil-core_2.12-2.5.0.jar,\
               lib/woodstox-core-5.1.0.jar,\
               lib/xercesImpl-2.12.0.jar,\
               lib/xml-apis-1.4.01.jar,\
               lib/xml-resolver-1.2.jar
jars.compile.order = lib/scala-library-2.12.6.jar,\
                     lib/scala-xml_2.12-1.1.0.jar,\
                     lib/scala-parser-combinators_2.12-1.1.1.jar,\
                     lib/commons-io-2.6.jar,\
                     lib/daffodil-io_2.12-2.5.0.jar,\
                     lib/daffodil-japi_2.12-2.5.0.jar,\
                     lib/daffodil-lib_2.12-2.5.0.jar,\
                     lib/daffodil-runtime1_2.12-2.5.0.jar,\
                     lib/daffodil-runtime1-unparser_2.12-2.5.0.jar,\
                     lib/daffodil-udf_2.12-2.5.0.jar,\
                     lib/icu4j-62.1.jar,\
                     lib/jackson-core-2.9.6.jar,\
                     lib/jdom2-2.0.6.jar,\
                     lib/jline-2.14.6.jar,\
                     lib/stax2-api-4.1.jar,\
                     lib/daffodil-core_2.12-2.5.0.jar,\
                     lib/woodstox-core-5.1.0.jar,\
                     lib/xercesImpl-2.12.0.jar,\
                     lib/xml-apis-1.4.01.jar,\
                     lib/xml-resolver-1.2.jar,\
                     .

插件清单如下图:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Plugin
Bundle-SymbolicName: com.companyName.plugin;singleton:=true
Bundle-Version: 1.0.0.0
Bundle-Vendor: VENDOR
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.ui,
 org.eclipse.jface.text,
 org.eclipse.ui.editors,
 org.eclipse.core.resources
Automatic-Module-Name: com.companyName.plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: lib/commons-io-2.6.jar,
 lib/daffodil-io_2.12-2.5.0.jar,
 lib/daffodil-japi_2.12-2.5.0.jar,
 lib/daffodil-lib_2.12-2.5.0.jar,
 lib/daffodil-runtime1_2.12-2.5.0.jar,
 lib/daffodil-runtime1-unparser_2.12-2.5.0.jar,
 lib/daffodil-udf_2.12-2.5.0.jar,
 lib/icu4j-62.1.jar,
 lib/jackson-core-2.9.6.jar,
 lib/jdom2-2.0.6.jar,
 lib/jline-2.14.6.jar,
 lib/scala-library-2.12.6.jar,
 lib/scala-parser-combinators_2.12-1.1.1.jar,
 lib/scala-xml_2.12-1.1.0.jar,
 lib/stax2-api-4.1.jar,
 lib/daffodil-core_2.12-2.5.0.jar,
 lib/woodstox-core-5.1.0.jar,
 lib/xercesImpl-2.12.0.jar,
 lib/xml-apis-1.4.01.jar,
 lib/xml-resolver-1.2.jar,
 .

尝试在 Windows 中安装插件时,我在 C:\Users\userName\eclipse-workspace.metadata.log 中收到以下错误。以下所有无法解析的方法均来自已添加到项目中的外部jar。

!ENTRY org.eclipse.ui 4 0 2020-07-21 16:42:07.814
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.Error: Unresolved compilation problems: 
    DataProcessor cannot be resolved to a type
    The method createDataProcessor(File) from the type DaffFunct refers to the missing type DataProcessor
    InputSourceDataInputStream cannot be resolved to a type
    InputSourceDataInputStream cannot be resolved to a type
    InfosetOutputter cannot be resolved to a type
    InfosetOutputter cannot be resolved to a type
    XMLTextInfosetOutputter cannot be resolved to a type
    JsonInfosetOutputter cannot be resolved to a type
    ParseResult cannot be resolved to a type
    Diagnostic cannot be resolved to a type
    Diagnostic cannot be resolved to a type

    at com.nteligen.daffodil.handlers.DaffFunct.parse(DaffFunct.java:62)
    at com.nteligen.daffodil.handlers.ParseHandler$6.handleEvent(ParseHandler.java:233)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4105)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1037)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3922)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3524)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    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:657)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1447)

【问题讨论】:

  • MANIFEST.MF 的 Bundle-Classpath 中有什么?日志中是否有任何消息?内置插件中是否确实存在所有 jar?
  • 我用关于 MANIFEST.MF 和日志的必要信息更新了问题。当我使用“jar tf jar_name”打开我的 jar 时,所有添加的外部 jar 文件都存在。
  • “未解决的编译问题”意味着您的代码甚至无法编译,您无法运行出现编译错误的代码。
  • 当我通过让插件在运行时版本的 eclipse 中运行来测试插件时,我的插件按预期工作。我在那里没有得到任何编译错误。当我尝试在我的普通 Eclipse 工作区中导出和安装插件时,我只会遇到编译错误。
  • 考虑到插件在单击项目的 plugin.xml 文件,然后单击“作为 Eclipse 应用程序运行”

标签: java eclipse eclipse-plugin eclipse-pde


【解决方案1】:

更新:问题似乎与我使用的 Windows 计算机有关。在另一台 Windows 机器上按预期使用此代码安装的插件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 2015-10-20
    相关资源
    最近更新 更多