java - 如何在不将脚本存储在 .py 文件中的情况下从 java 运行 python 脚本?

标签 java python

我想执行一个作为网络请求获得的 python 脚本,执行脚本并将输出作为响应发送。

到目前为止,我已经将 python 脚本写入一个 .py 文件并使用 ProcessBuilder 执行它。

问题是,一旦脚本被执行,将脚本存储在服务器中就没有用了。所以我在执行完成后删除文件。

现在我觉得这是一种糟糕的做法,希望尽量减少写入和删除操作。

我尝试使用 jpserve但它没有按预期工作。 (当 selenium 测试用例作为 jpserve 的输入时,它不会处理脚本,但仍会发送成功消息。)另外,我对使用 jython 不感兴趣。

有没有办法运行 python 脚本而不将其存储在 .py 文件中?

最佳答案

您也可以像这样运行脚本:

String script = "your script from server";
ProcessBuilder pb = new ProcessBuilder("python3", "-c", script);
pb.start();

在 shell 中,python -c 允许您运行在 shell 中编写的脚本。

关于java - 如何在不将脚本存储在 .py 文件中的情况下从 java 运行 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849773/

相关文章:

java - 解析 AMAZON.DURATION 插槽类型的 ISO-8601 持续时间值

python - 如何在用 python 写入文件时自动更改特定单词?

java - putParcelableArrayListExtra 和黑屏

java - Solr:带空格和不带空格的匹配结果

java - Google 日历 API Java 403

java - 使用 selenium pagefactory 时收到空指针异常

python - python 程序如何检查自己的 md5sum?

python - Python 的值排序字典?

python - peewee:Python int 太大而无法转换为 SQLite INTEGER

python - 当我的 virtualenv 有 python3.5 时,为什么 django 1.9 继续使用 python2.7 ?