//工作目录 String Path = System.getProperty("user.dir"); String pyCodePath = Path + "\\python\\pyCode\\routeplanning\\train.py"; String pyPath = Path + "\\python\\pyCode\\python37\\python.exe"; String w1 = "3"; String[] args1 = new String[]{pyPath, pyCodePath,w1}; String result1 = null; System.out.println("Start");//开始 try { // 执行Python文件,并传入参数 Process process = Runtime.getRuntime().exec(args1); // 获取进程的错误输出流 BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); String actionStr = in.readLine(); if (actionStr != null) { System.out.println(actionStr); } in.close(); process.waitFor(); String line; while ((line = errorReader.readLine()) != null) { System.err.println(line); } } catch (IOException e) { throw new RuntimeException(e);//返回错误信息
时间: 2024-04-12 17:31:24 浏览: 119
基于springboot个人公务员考试管理系统源码数据库文档.zip
根据你提供的代码,你正在使用Java调用Python脚本,并向脚本传递参数。根据错误信息 "error: unrecognized arguments: 3",这个错误通常是由于传递的参数不被Python脚本所识别造成的。
首先,请确保你的Python脚本能够接收并正确处理参数。在你的Python脚本中,你需要使用 `argparse` 或类似的方式来解析命令行参数。例如:
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("w1", help="Some argument")
args = parser.parse_args()
# 在这里使用 args.w1 处理参数
```
其次,请确保你的Java代码中传递参数的方式是正确的。根据你的代码,你将参数 `w1` 作为数组 `args1` 的一个元素进行传递。请确保这个参数在你的Python脚本中能够正确接收。
如果你已经按照上述步骤进行了操作,但仍然遇到问题,请提供更多详细信息,比如完整的Python脚本和Java代码,以及你期望的预期结果。这样我可以更具体地帮助你解决问题。
阅读全文