簡體   English   中英

在Java代碼中運行python腳本時出現問題

[英]Problem while running python script in java code

當我從下面的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)

有人可以讓我知道如何解決此異常。

謝謝你,哈莎

error=2表示Win32 CreateProcess函數返回錯誤代碼2,或ERROR_FILE_NOT_FOUND 它要么找不到您的腳本,要么(更可能是IMO)找不到python.exe 如果是后者,請確保您的系統路徑中包含您的Python安裝(可能是C:\\Program Files\\Python\\bin ,盡管我不確定)。

您可以通過進入控制面板並打開“系統”來更改系統路徑。 如果您使用的是Vista或7,請點擊“高級系統設置”; 如果您使用的是XP或2000,請選擇“高級”標簽。 點擊“環境變量”,在“系統變量”下找到“路徑”或“ PATH”,然后將Python bin目錄添加到字符串的開頭(以分號分隔)。

您不需要所有多余的引號。

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

這應該工作正常。

  1. Python走了嗎? 我很可能用一條路徑來限定它的位置,以准確確定要拾取的python(如果有)
  2. 您不需要在Python腳本參數周圍加上引號

根據程序輸出,變量Filepath與您實際發送的變量不匹配。 該錯誤將其列為“ C:\\ Documents and Settings \\ user \\ Desktop \\ arbit.csv”,並在用戶配置文件名稱后帶有多余的空格,這很可能是“找不到文件”錯誤的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM