gpt4 book ai didi

java - osgi jar从3.8.1升级到3.10.1的问题

转载 作者:行者123 更新时间:2023-12-01 09:58:27 24 4
gpt4 key购买 nike

我正在尝试升级项目中的 OSGI 版本,但在启动应用程序时遇到以下异常。

我在 Activator 类的 start() 中遇到以下异常:

引起:java.lang.IllegalArgumentException:声明无效:osgi.native; native.paths:List="Some_DLL's_are_specified_here";过滤器:=“(|(&(|(osgi.native.osname~=win32)(osgi.native.osname~=Windows 8)(osgi.native.osname~=Windows 8.1)(osgi.native.osname~= Windows Server 2012)(osgi.native.osname~=Windows Server 2012 R2)(osgi.native.osname~=Windows 10)(osgi.native.osname~=Windows NT(未知)))(osgi.native.processor~ =x86_64)))".........导致:org.osgi.framework.BundleException:无效的 list header Require-Capability:osgi.native; native.paths:List="Some_DLL's_are_specified_here";过滤器:=“(|(&(|(osgi.native.osname~=win32)(osgi.native.osname~=Windows 8)(osgi.native.osname~=Windows 8.1)(osgi.native.osname~= Windows Server 2012)(osgi.native.osname~=Windows Server 2012 R2)(osgi.native.osname~=Windows 10)(osgi.native.osname~=Windows NT(未知)))(osgi.native.processor~ =x86_64)))".........导致:org.osgi.framework.InvalidSyntaxException:“(未知)))(osgi.native.processor~=x86_64)))”处的值无效:(|(&(|(osgi.native.osname~=win32)) (osgi.native.osname~=Windows 8)(osgi.native.osname~=Windows 8.1)(osgi.native.osname~=Windows Server 2012)(osgi.native.osname~=Windows Server 2012 R2)(osgi. native.osname~=Windows 10)(osgi.native.osname~=Windows NT (未知)))(osgi.native.processor~=x86_64))).........根异常:java.lang.IllegalArgumentException:声明无效:osgi.native; native.paths:List="<>";过滤器:=“(|(&(|(osgi.native.osname~=win32)(osgi.native.osname~=Windows 8)(osgi.native.osname~=Windows 8.1)(osgi.native.osname~= Windows Server 2012)(osgi.native.osname~=Windows Server 2012 R2)(osgi.native.osname~=Windows 10)(osgi.native.osname~=Windows NT(未知)))(osgi.native.processor~ =x86_64)))"

最后我在控制台上遇到以下异常:

java.lang.IllegalStateException:无法获取应用程序服务。确保 org.eclipse.core.runtime 包已解析并启动(请参阅 config.ini)。

有人熟悉这个吗?或者有什么建议吗?

注意:我已在项目中将 org.eclipse.osgi_3.10.1 jar 替换为 org.eclipse.osgi_3.8.1。

最佳答案

您必须拥有一个带有 Bundle-NativeCode header 的 bundle ,该 header 具有 osname="Windows NT(未知)"属性。 Equinox 框架中存在一个错误,在为 osgi.native 命名空间生成过滤器时,该错误不会转义此类值。我打开了错误https://bugs.eclipse.org/bugs/show_bug.cgi?id=492890解决这个问题。

在等待修复时,我建议您从属性列表中删除 osname="Windows NT (unknown)"。您看起来已经在使用 win32 别名,它应该涵盖所有 Windows 变体。

关于java - osgi jar从3.8.1升级到3.10.1的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36998999/

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