尝试使用自定义vm arg

时间:2015-10-29 16:20:19

标签: eclipse eclipse-plugin equinox osgi-fragment

似乎只有另外一个这种性质的问题,here,但这个答案提出的解决方案对我来说并不有效。我使用Spring Tool Suite(本质上是Kepler 4.3.2 SR2)作为我的IDE来开发包含最新版本的一些本机C ++代码的OSGi片段。这些片段的存在是为了允许在本机代码要与之集成的不同环境中存在不同版本的软件。

但是我无法导出此片段,显然是因为我们用来表示此版本号的自定义虚拟机arg。

清单看起来像这样:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Windows 64-bit support for Third-Party XYZ 4.12.7
Bundle-SymbolicName: com.ourcompany.oursoftwarepackage.xyz.win64xyz4127  
Bundle-Version: 8.6.2.qualifier
Bundle-Vendor: OurCompany
Fragment-Host: com.ourcompany.oursoftwarepackage.xyz
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-PlatformFilter: (& (osgi.os=win32) (osgi.arch=x86_64))
Bundle-NativeCode: xyzintegration.dll; selection-filter = "(oursoftwarepackage.xyzVersion=4.12.7)"
Bundle-ClassPath: .

错误说:

  

从功能org.eclipse.pde.container.feature处理包含:   束   com.ourcompany.oursoftwarepackage.xyz.win64xyz4127_8.6.2.qualifier   无法解决:不满意的本机代码过滤器:   xyzintegration.dll;   选择过滤器= “(oursoftwarepackage.xyzVersion = 4.12.7)”。

如果我删除了选择过滤器子句,则它似乎导出但没有产生实际的工件。

我从上面的链接推断的建议是包括vmarg

-Doursoftwarepackage.xyzVersion=4.12.7 

在插件开发目标环境中。但是,这似乎并不满足OSGi框架。现在我不知道如何解决片段以便导出可以继续。

1 个答案:

答案 0 :(得分:0)

我想你是在谈论目标定义编辑器的目标环境设置。至少那是我认识的唯一一个这样的环境。但这是您正在开发的目标的定义。它没有指定运行时。

您需要在运行配置中设置VM参数。

运行 - >运行配置... - >选择要启动的应用程序 - >切换到参数选项卡 - >将值插入VM参数部分