2014-02-23 37 views
0
Process process = Runtime.getRuntime().exec(String.format("python.exe test.py %s %d", "lightStatus", 1)); 
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
String deviceCmd = reader.readLine(); 
System.out.println(deviceCmd); 

test.py:關於在Java中使用exec for Python?

import sys 
import argparse 

if __name__ == "__main__": 
    para = sys.argv[1] 
    value = sys.argv[2] 
    message = '{"message": "change_lightStatus", "value": %d}'%int(value) 
    print (message) 

西隧在Java輸出爲空?我想要獲得字符串

回答

0

程序中沒有錯誤。由於某些例外情況,它可能會打印出空白。你是否捕獲異常或至少打印它們?可能的原因可能是

  1. Python解釋器沒有發現(由於不正確的系統路徑爲 爲例),未發現
  2. 文件test.py(檢查,如果該文件是在同一目錄 從那裏你正在運行Java虛擬機)
  3. 其他平臺相關的原因。

檢查異常。他們可能會給你一些有價值的信息。

+0

非常感謝你!我解僱了相關代碼中的錯誤。 – user3327884

+1

@ user3327884:你能澄清你的問題嗎? –