在Java代码中运行Python脚本时遇到问题

0 投票
4 回答
1812 浏览
提问于 2025-04-15 13:46

当我从下面的Java代码运行一个Python脚本时,我给这个Python脚本传了一个输入文件作为参数,还有一个“-v”的选项,这时我遇到了一个IOException(输入输出异常)。

String pythonScriptPath="\"C:\\Program Files\\bin\\CsvFile.py\"";
String Filepath="C:\\Documents and Settings\\user\\Desktop\\arbit.csv";
String[] cmd = new String[4];
cmd[0] = "python";
cmd[1] = pythonScriptPath;
cmd[2] = "-v";
cmd[3] = Filepath;
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);

以下是错误信息:

CreateProcess: python "C:\Program Files\bin\CsvFile.py" -v "C:\Documents and Settings\user \Desktop\arbit.csv" error=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)

有没有人能告诉我怎么解决这个异常呢?

谢谢你, Harsha

4 个回答

0
  1. 你的电脑上有Python吗?我建议你检查一下路径,这样可以准确知道你在用哪个Python(如果有的话)。
  2. 在运行Python脚本时,参数周围不需要加引号。
0

你不需要那些多余的引号。

String pythonScriptPath="C:\\Program Files\\bin\\CsvFile.py";

这样应该没问题。

2

error=2表示Win32的CreateProcess函数返回了一个错误代码2,也就是ERROR_FILE_NOT_FOUND。这意味着它要么找不到你的脚本,要么(我觉得更可能)找不到python.exe。如果是后者的话,确保你的Python安装路径(可能是C:\Program Files\Python\bin,不过我不太确定)在你的系统路径中。

你可以通过进入控制面板来修改系统路径,打开“系统”。如果你使用的是Vista或7,点击“高级系统设置”;如果你使用的是XP或2000,选择“高级”选项卡。点击“环境变量”,找到“Path”或“PATH”在“系统变量”下,然后把你的Python bin目录添加到字符串的开头(用分号分隔)。

撰写回答