关于Java中exec的用法?

时间:2014-02-23 14:05:49

标签: java python process

Process process = Runtime.getRuntime().exec(String.format("python.exe test.py %s %d", "lightStatus", 1));
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String deviceCmd = reader.readLine();
System.out.println(deviceCmd);

test.py:

import sys
import argparse

if __name__ == "__main__":
    para = sys.argv[1]
    value = sys.argv[2]
    message = '{"message": "change_lightStatus", "value": %d}'%int(value)
    print (message)

Java输出为空?我想得到字符串

1 个答案:

答案 0 :(得分:0)

您的计划没有错误。由于某些异常,它可能会打印为null。您是在捕获异常还是至少打印它们?可能的原因可能是

  1. 找不到Python解释器(由于系统路径不正确) 例子),
  2. 找不到文件test.py(检查文件是否相同 您运行Java虚拟机的目录)
  3. 其他平台相关原因。
  4. 检查例外情况。他们可能会给你一些有价值的信息。