gpt4 book ai didi

java - 从 Python 执行 .jar

转载 作者:行者123 更新时间:2023-11-30 09:49:50 25 4
gpt4 key购买 nike

我正在尝试构建一个非常简单的 python 脚本来自动缩小/合并一些 css/js Assets 。

我不确定如何正确处理缩小步骤。我使用 yui-compressor,通常直接从命令行调用 jar。

假设构建脚本与 rhino js.jaryui-compressor.jar 位于同一目录中,我将能够压缩 css/js 文件像这样:

java -cp js.jar -jar yuicompressor-2.4.4.jar -o css/foo.min.css css/foo.css

从终端调用它工作正常,但在 python 构建文件中,它不例如,os.system("...")返回的退出状态是 0,命令没有返回任何输出(例如,当使用 os.popen() 而不是 os.system ())

我猜它与路径有关,也许是在调用 os.system() 时 java 没有正确解析……有什么想法吗?

感谢您的帮助

最佳答案

我有一个有点类似的案例,当我想要一个 python 程序构建一些命令然后运行它们时,输出将发送给启动脚本的用户。我使用的代码是:

import subprocess
def run(cmd):
call = ["/bin/bash", "-c", cmd]
ret = subprocess.call(call, stdout=None, stderr=None)
if ret > 0:
print "Warning - result was %d" % ret

run("javac foo.java")
run("javac bar.java")

在我的例子中,我希望所有命令都运行错误或不运行错误,这就是为什么我没有在错误时引发异常。另外,我希望任何消息直接打印到终端,所以我将 stdout 和 stderr 设置为 None ,这会导致它们不进入我的 python 程序。如果您对错误和消息的需求略有不同,请查看 http://docs.python.org/library/subprocess.html有关如何调整所发生情况的文档。

(我要求 bash 为我运行我的命令,以便我得到我通常的路径、引用等)

关于java - 从 Python 执行 .jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532481/

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