gpt4 book ai didi

java - 如何让 OSGi ScriptEngineManager 运行

转载 作者:行者123 更新时间:2023-11-30 06:24:31 26 4
gpt4 key购买 nike

我并不是 OSGi 的完全新手,但显然已经足够新手了。

我想做的是编写一个 OSGi (Apache Felix) 包并使用 Java 脚本 API (JSR-223) 和 Groovy 等。为此,我安装了 groovy 2.4.12,它已经是一个 OSGi bundle ,并且我将 Groovy Runtime (2.4.12) 视为 Felix 远程 Shell 控制台中的 Activity 服务。

我也理解Java的ServiceLoader API和OSGi的bundle之间的冲突。这个Is OSGi fundamentally incompatible with JSR-223 Scripting Language Discovery?引用一篇博客,指出 Felix 已经找到了解决方法。

一切都好。但是之后。我需要导入什么才能使用该 OSGiScriptEngineManager 片段?

最佳答案

如果你使用 Maven,类似这样的东西可以工作:

 <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.mishell</artifactId>
<version>1.0.0</version>
</dependency>

但我认为这个包从未发布过,可能是一个死项目。嗯,你可以尝试从https://github.com/Dexels/apachecon/tree/master/org.apache.felix.mishell自己编译一下

我尽量避免使用 ServiceLoaders,如果你说他们提供 Groovy 作为 OSGi 服务,那么你真的应该使用它。

如果您只想使用 Groovy,我建议这样做:

import org.codehaus.groovy.jsr223.GroovyScriptEngineFactory;
import javax.script.ScriptEngine;

public class Test {

public static void main(String[] args) {
ScriptEngine e = new GroovyScriptEngineFactory().getScriptEngine();
}
}

关于java - 如何让 OSGi ScriptEngineManager 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475530/

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