关于在Java中使用exec for Python?

关于在Java中使用exec for Python?,java,python,process,Java,Python,Process,test.py: 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(); Syst

test.py:

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);

Java输出为什么为空?我想获取字符串

您的程序中没有错误。由于某些异常,它可能正在打印null。您是捕获异常还是至少打印它们?可能的原因可能是

  • 未找到Python解释器(由于的系统路径不正确) 示例)
  • 找不到文件test.py(检查该文件是否位于同一目录中 运行Java虚拟机的目录)
  • 其他平台相关原因

  • 检查例外情况。他们可能会给你一些有价值的信息。

    非常感谢!我排除了相关代码上的一个错误。@user3327884:您能澄清一下您遇到的问题吗?
    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)