在python中使用subprocess.Popen运行java主类

我想使用 subprocess.Popen() 通过python执行java主类 main.java . main.java 需要3个参数 .

我想知道怎么做?例如,我有一个 HelloWorld.java 类:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!" + args[0]);
    } }

我尝试使用命令在python中调用它:

print(subprocess.Popen('java C:/Users/testing/Hello.Main sayHello',shell = True,stdout = subprocess.PIPE).stdout.read())

其中'sayHello'是我要传递的字符串args . 它说

Error: Could not find or load main class C:.Users.testing.Hello.Main

谢谢

回答(1)

2 years ago

您可以通过以下方式运行扩展名为 .class 的java文件:

java your.path.Main arg1 arg2

哪里,

  • java - 命令,它运行Java解释器

  • your.path.Main - class 的全名(不含 .class

  • arg1 arg2 - 参数(用空格或 " 之间写)

此外,当您格式化此行时,它将在 subprocess.Popen() 中作为参数传输 .

subprocess.Popen('java your.path.Main arg1 arg2')

我不是Python程序员,因为我建议你阅读documentation about this method .