2017-02-17 92 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)