当前位置: 首页 > 知识库问答 >
问题:

Equinox和Java脚本API

东方嘉佑
2023-03-14

我想创建一个OSGi(Equinox)捆绑包,其中包含一个脚本引擎(JSR-223兼容),并通过ScriptEngineManager.getEngineFactory()在另一个捆绑包中使用它。

然而,Java脚本API(jar文件服务发现)的服务发现机制无法在已安装的捆绑包中发现脚本引擎。

我已经看到了一些关于这个主题的答案,建议使用Apache Felix或Apache Sling,因为他们有一个解决方案。然而,我想知道Equinox实现是否有办法来处理这个问题?

共有2个答案

公孙涵育
2023-03-14

我已经实现了一个解决方案,基于OSGi从根本上与JSR-223脚本语言发现不兼容吗?使用OSGiScriptEngineManager和朋友的答案之一,效果很好。

然后,最大的问题可能是为所讨论的脚本语言找到合适的JSR 223实现:-)

姬实
2023-03-14

OSGi 5将支持它,它被称为服务加载程序中介。这将有效地将OSGi服务与java连接起来。util serviceloader。

ApacheAries有一个名为Spi Fly的实现,应该可以工作。我想它更适合Felix,但通常OSGi的实现都非常兼容。

不过,老实说,我从来没有深入了解过这件事,所以我不能从个人经验出发。

祝你好运,弗兰克

 类似资料:
  • OSGi 是目前动态模块系统的事实上的工业标准,虽然一开始只是作为嵌入式设备和家庭网关的框架来使用,但是实际上它适用于任何需要模块化、面向服务、面向组件的 应用程序。而 Equinox 则是的 Eclipse 所使用的 OSGi 框架,是 Eclipse 强大的插件体系的基础,Eclipse 的稳定可靠性也为该框架带来了声誉。 Equinox,’ikwe noks,紧随eclipse之后,采用天文

  • 在Groovy脚本中到处搜索log4j日志记录到文件的工作示例。 没有显式类(它只是一个脚本)。没有圣杯。不到控制台。。。到文件。 只是一个带有log4j的普通groovy脚本。 log4j是最适合这一点的(groovy)还是其他日志库更好? 有人能给我举个例子或演示一下这是如何做到的吗?我设法把它送到控制台,但没有归档。 如果log4j配置也在config.groovy文件中,那就太好了,因为我

  • 创建和使用脚本 游戏对象的行为由绑定的 组件 所控制。尽管 Unity 内置的组件非常灵活多样,但是你很快就会发现它们提供的功能远远不够,为了实现你所要的游戏功能,你需要超越它们才行。Unity 支持通过 脚本 创建属于你自己的组件。在组件中,随着时间的推移,你可以触发游戏事件、修改组件属性,还可以以任何你喜欢的方式来响应用户输入。 Unity 内置支持两种编程语言: C# 一种工业标准语言,类似

  • 问题内容: 我通过JSR 223使用Nashorn来执行用户输入脚本的小片段: 不同的用户脚本会调用在静态中央库(在上面的代码片段的String中保留)中定义的JavaScript函数。 每次我想获得可以从Java调用的an时,我总是不得不重新编译大型库代码。 有什么方法可以将以前编译的代码与新代码结合在一起? 问题答案: 这是由JSR-223设计的;后面真的没有代码缓存。嗯,从 理论上讲 可以,

  • 脚本概述 Unity 采用了标准的 Mono 运行时来提供脚本功能,并扩展了自主的实践和技术,来支持脚本访问引擎。本节介绍如何通过脚本控制在 Unity 编辑器中创建的对象,并详细介绍 Unity 游戏功能和 Mono 运行时之间的关系。 译注:Mono 是 ECMA 通用语言基础架构(ECMA Common Language Infrastructure,CLI) 的实现。关于 Mono 是如何

  • 当 Gradle 执行一个脚本时,它会将这个脚本编译为实现了 Script 的类. 也就是说所有的属性和方法都是在 Script 接口中声明的,由于你的脚本实现了 Script 接口,所以你可以在自己的脚本中使用它们.