-2

私のPythonプログラムは「check.py」です

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パラメーターを渡しているため、出力はvirajproc.communicate("viraj")

テストに成功
しました 文字列
Hello viraj を入力してください

ただし、パラメーターを渡したくありません。代わりに、出力を次のようにします

テストに成功
しました 文字列を入力してください

として文字列を入力すると、次のvirajように出力されHello viraj ます。これを行うにはどうすればよいですか?

4

1 に答える 1

2

Java プログラムとやり取りするには、communicate()引数を指定せずに呼び出すだけです。

def execute_java(java_file):
    java_class,ext = os.path.splitext(java_file)
    cmd = ['java', java_class]
    proc = subprocess.Popen(cmd)
    proc.communicate()
于 2012-03-05T18:27:07.553 に答える