在Java代码中运行Python脚本时遇到问题
当我从下面的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
- 你的电脑上有Python吗?我建议你检查一下路径,这样可以准确知道你在用哪个Python(如果有的话)。
- 在运行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
目录添加到字符串的开头(用分号分隔)。