在bundle中执行脚本(.bat和.sh)

时间:2014-02-05 12:00:13

标签: java shell batch-file osgi exec

我的包中包含Resources文件夹中的脚本(.bat和.sh)。 有必要在bundle中执行这个脚本。

我怎样才能在OSGi世界中实现这一目标?例子是a.w.e.s.o.m.e

2 个答案:

答案 0 :(得分:0)

我认为当bundle变为Active时你脚本需要做什么?在一个包中,您可以创建一个Activator(实现BundleActivator接口)并让它运行脚本。

我不确定你的脚本是做什么的,但我个人不会使用脚本并尝试以不同的方式做事。

答案 1 :(得分:0)

要执行脚本,可以使用Runtime.exec(..)启动shell(sh,bash等)。这些shell可以执行一个脚本,该脚本既可以作为文件提供,也可以从标准输入中读取。后一种选择可以在这里使用。 Runtime.exec(..)返回一个Process对象,您可以获取其输入和输出流。按照此处所述How do I access a file inside an OSGi bundle?从您的捆绑包中获取资源,并将该数据传递到您的流中。