-2
我的Python編程'是 「check.py」溝通與Java程序在Python
import os.path,subprocess
from subprocess import STDOUT,PIPE
def compile_java(java_file):
subprocess.check_call(['javac', java_file])
def execute_java(java_file):
java_class,ext = os.path.splitext(java_file)
cmd = ['java', java_class]
proc = subprocess.Popen(cmd,stdout=PIPE,stdin-PIPE,stderr=STDOUT)
stdout,stderr = proc.communicate("viraj")
print stdout
我的Java程序是 「Test.java」
import java.util.*;
class Test
{
public static void main(String args[])
{
System.out.println("Tested Successfully");
Scanner t=new Scanner(System.in);
System.out.println("Enter the string");
String str=t.nextLine();
System.out.println("Hello "+str);
}
}
在這裏,check.py
,我傳遞一個參數viraj
如proc.communicate("viraj")
,因此我的輸出是
測試成功
輸入字符串
你好的Viraj
不過,我不希望傳遞參數。相反,我想輸出作爲
測試成功
輸入字符串
,然後後,我輸入的字符串作爲viraj
,它應該得到打印爲Hello viraj
我怎樣才能做到這一點?
我自己也嘗試這種解決方案。但輸出「測試成功輸入字符串」,然後選擇「java.util.noSuchElementException:沒有找到行」來了.. – 2012-03-06 01:37:43
哎呀,刪除'標準輸入= PIPE'從調用到'subprocess.Popen'。 – unutbu 2012-03-06 02:31:38