【问题标题】:execute a script contained within a resource bundle in a jar执行包含在 jar 中的资源包中的脚本
【发布时间】:2017-10-29 14:45:25
【问题描述】:

我有一个添加到项目资源部分的脚本。

当测试所有工作都按预期进行时,但当项目编译为 jar 时,资源不再作为“松散”文件可用。而是在罐子里。

在这种情况下,我该如何继续使用该脚本?

在开发中运行这样的脚本:

val script: String = getClass.getResource("/scripts/myScript.py").getPath
...
s"python $script $flags"!

【问题讨论】:

标签: java scala sbt


【解决方案1】:

Jython 一起使用,如下所示:

import java.io.InputStreamReader
import javax.script.ScriptEngineManager

val pyEngine = new ScriptEngineManager.getEngineByName("python")
val script = new InputStreamReader(getClass.getResourceAsStream("/scripts/myScript.py"))
pyEngine.eval(script)

另见information about installing the latest release of Jython

【讨论】:

  • 但是脚本是 Python 脚本。您的意思是不想使用 Jython?
  • 我只是举了一个例子。它可以是 ruby​​ 脚本或 shell 脚本或任何任意资源。
  • 我回答了你提出的问题。但是 ScriptEngine 方法适用于各种脚本类型。
猜你喜欢
  • 2010-10-09
  • 2014-10-08
  • 2013-07-07
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2014-08-26
相关资源
最近更新 更多