2017-02-17 121 views
0

我想在Python运行此命令加载主类:错误:无法找到或蟒蛇

java JSHOP2.InternalDomain logistics 

它工作得很好,当我在cmd中运行它。

我在Python写的:

args = ['java', 
     r"-classpath", 
     r".;./JSHOP2.jar;./antlr.jar", 
     r"JSHOP2.InternalDomain", 
     thisDir+"/logistics" 
     ] 
    proc = subprocess.Popen(args, stdout=subprocess.PIPE) 
    proc.communicate() 

我在当前目录下的jar文件。

,但我得到这个错误: 错误:无法找到或加载主类JSHOP2.InternalDomain

有谁知道问题是什么?不能找到jar文件吗?

+1

你可能要设置的过程中的当前工作目录(在'cwd'关键字参数'POPEN()')。 –

+0

我应该怎么做? – user1393201

+0

将'cwd ='关键字参数设置为您想在'classpath'中表示的目录。这或在类路径中使用绝对路径。 –

回答

0

运行Python代码时,不能指望当前工作目录总是相同。明确设置使用cwd论证工作目录:

proc = subprocess.Popen(args, stdout=subprocess.PIPE, 
         cwd='/directory/containing/jarfiles') 

另外,使用绝对路径在-classpath命令行参数。如果这条道路是thisDir,然后使用:

proc = subprocess.Popen(args, stdout=subprocess.PIPE, 
         cwd=thisDir)