java - 从 Java 运行 python 脚本时出错
问题描述
我一直在尝试从 Java 调用 Python 3.x 程序。我需要的是从 python 获取输出并将其写入文件。这就是我所做的。这是创建一个 Json 文件,但不提供输出。请帮帮我。
public static void main(String[] args) throws ScriptException, IOException {
Process p = Runtime.getRuntime().exec("python <path to the file>/reg.py");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String ret = in.readLine();
System.out.println(ret);
BufferedWriter out = new BufferedWriter(new FileWriter("<some path>/output.json"));
out.write(ret);
out.close();
}
解决方案
好的,所以在我们在评论中讨论之后,您的脚本会抛出错误,因为它找不到文件 output.txt。现在,问题是这被记录到错误流而不是常规错误流中。您应该做的是打开该流并阅读它:
BufferedReader in = new BufferedReader(new InputStreamReader(p.getErrorStream()));
实际上,您可以打开两个流:errorStream 和 outputStream 并首先读取错误流以检查它是否包含某些内容(这意味着执行失败)。如果没有,请打开 outputStream 并正常读取其内容。
推荐阅读
- c++ - long long int 中的溢出
- django - 如何使用 DRF + JWT 验证/保护非 api_views,例如。呈现私人页面
- css - 固定元素行为不如预期
- reactjs - React 基于角色的授权
- javascript - 如何在 Visual Studio 中获得 Jslib 文件的语法高亮显示
- c++ - (C++)数组作为结构的成员:如何获得它的大小?
- python - Python:源代码具有无法从外部访问的属性
- amazon-web-services - Cloudfront 路径作为代理
- linux - 为什么不能将新添加的文件推送到远程存储库?
- javascript - 我想显示我在grapesjs 编辑器中创建的这个html 内容