从python程序执行java

时间:2018-03-14 18:31:32

标签: java python-3.x

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):
    cmd=['java', java_file]
    proc=subprocess.Popen(cmd, stdout = PIPE, stderr = STDOUT)
    input = subprocess.Popen(cmd, stdin = PIPE)
    print(proc.stdout.read())

compile_java("D:\\GFG.java")
execute_java("D:\\GFG")

上面的代码正在编译,但是在execute_java("D:\\GFG")

  

错误:无法找到或加载主类GFG \ r \ n'。

请帮忙

1 个答案:

答案 0 :(得分:0)

假设GDG.class中有D:\个文件,执行java程序的命令是

java -cp D:\ GFG

这意味着:'执行一个java程序,主类是GFG; D:\目录位于类路径'。

java将从D:\加载您的程序类,尝试查找GFG类并执行其main()方法。

而是执行以下操作:

java D:\GFG

被解释为“在类D:\GFG中执行代码”,这是没有意义的。