python调用java


主要思路是通过subprocess执行jar包。

两种方式:

  1. java -jar jarName args
import subprocess

command = 'java -jar demo.jar %s %s' %(arg0,arg1)
stdout = subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]

这种方式需要在jar包META-INF\MANIFEST.MF文件中,指定Main-Class参数,即java -jar命令执行的类。
比如用maven打包,指定demo.Demo

 

       org.apache.maven.plugins
       maven-jar-plugin
       2.4
       
           
               
               
                   
                   true
                   lib/
                   
                   demo.Demo
                
           
           
               **/*.*
           
       
   
  1. java -cp jarPath packname.classname args
    这种方式不需要指定Main-Class参数,适用于一个jar包里有多个待执行类,如demo.jar里有package demo,里面包含两个类Demo1和Demo2,则调用Demo1如下:
import subprocess

command = 'java -cp c:/jarPath/demo.jar demo.Demo1 %s %s' %(arg0,arg1)
stdout = subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]

你可能感兴趣的:(python调用java)