我正在从 Java 调用一些 Python 模块。该模块使用的是numpy,所以我Runtime.getRuntime().exec()
用来调用Python。在Java中,我正在做这样的事情:
File python = new File("/usr/bin/python2.7");
File script = new File("/opt/my_custom_script.py");
String[] cmdArray = new String[] { python.toString(), script.toString(),
"-i infile.txt", "-o outfile.txt" };
Process p = Runtime.getRuntime().exec(cmdArray);
p.waitFor();
if (p.exitValue() != 0) {
throw new Exception(scriptName + " failed with exit code " + p.exitValue());
}
到目前为止,我在 Python 中得到了:
def main(argv):
try:
opts, args = getopt.getopt(argv, "i:o:")
except getopt.GetoptError as err:
print(err)
sys.exit(128) # made up number so I know when this happens
sys.exit(0)
if __name__ == "__main__":
main(sys.argv[1:])
每次我运行它时,我都会不断得到我编造的错误号,并且我的 Python 脚本不再运行。直接调用 Python(在 bash 中)没有问题。
我的断线在哪里?我将如何进行故障排除/调试?