gpt4 book ai didi

java - 带有外部第三方 jar 的 Eclipse 插件

转载 作者:行者123 更新时间:2023-11-30 08:58:37 25 4
gpt4 key购买 nike

我有一个包含不同插件的 RCP 应用程序。在其中一个插件中,我使用了外部第三方 jar。由于版权原因,我无法将该 jar 捆绑到我的产品中。所以我尝试在运行时将 jar 作为外部 jar 包含在内。我所做的如下

在我的插件 manifest.mf 中

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: EaCom-plugin;singleton:=true
Bundle-Version: 2.1.0
Require-Bundle: org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: .,
external:$eaapi_location$/eaapi.jar
Bundle-NativeCode: external:$eaapi_location$/SSJavaCOM.dll
Export-Package: org.sparx
Bundle-Vendor: %pluginVendor

在运行时下 -> 我添加的导出包

 org.sparx

在我的类路径下

  external:$eaapi_location$/eaapi.jar

构建属性

source.. = src/main/java/,\
src/main/scala/,\
src/main/resources/,\
src/test/java/,\
src/test/scala/,\
src/test/resources/
output.. = bin/
bin.includes = META-INF/,\

在 build.properties 中,我在第一行有一个警告。警告是

source.external:$eaapi_location$/eaapi.jar 构建条目丢失

我导出产品:myrcpapp.exe 并在我的产品 myrcpapp.ini 的配置文件中添加 vm 参数:-Deaapi_location=C:/JavaAPI

出现以下错误

错误消息:java.lang.error: Unresolved 编译问题:无法将存储库解析为类型

虽然我在 eclipse 中运行时它工作正常但我缺少什么?

我们将不胜感激任何帮助。

谢谢

最佳答案

好的,我解决了我的问题。实际情况是我有一个第三方 jar,它包含在包装器插件项目中,其他插件需要它才能成功编译。在编译(导出产品)期间,这些其他插件使用位于包装器插件中的 jar 来成功编译,为此我需要在包装器插件的 java 类路径下提供 jar 的位置。

但是一旦产品被导出我不希望这个 jar 成为产品的一部分,因为它是第三方 jar 并且它不应该与 exe 一起分发。所以解决方法是

在包装器插件 Manifest -> Runtime Tab -> Classpath 下提供 jar 的位置。在我的例子中是

 src/main/resources/thridparty.jar 

在 Build 选项卡下 -> Binary Build 仅选择 list 。

在 MANIFEST.MF 中包含

Bundle-ClassPath: external:$thirdpartyjar_location$/thirdparty.jar,
src/main/resources/thirdparty.jar

导出产品,在产品配置文件下添加系统属性

 -Dthirdpartyjar_location=path/to/the/thirdpartyjar

当您使用 exe 运行产品时,它将使用您在配置中提供的外部路径中的 jar。

希望对大家有帮助。

关于java - 带有外部第三方 jar 的 Eclipse 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27562370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com