Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:无法在python中找到或加载主类_Java_Python - Fatal编程技术网

Java 错误:无法在python中找到或加载主类

Java 错误:无法在python中找到或加载主类,java,python,Java,Python,我正在尝试用Python运行此命令: java JSHOP2.InternalDomain logistics 当我在cmd中运行它时,它工作得很好 我是用Python写的: args = ['java', r"-classpath", r".;./JSHOP2.jar;./antlr.jar", r"JSHOP2.InternalDomain", thisDir+"/logistics" ] p

我正在尝试用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文件吗?

在运行Python代码时,不能指望当前工作目录总是相同的。使用
cwd
参数显式设置工作目录:

proc = subprocess.Popen(args, stdout=subprocess.PIPE, 
                        cwd='/directory/containing/jarfiles')
或者,在
-classpath
命令行参数中使用绝对路径。如果该路径是thisDir,则使用该路径:

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

您可能想要设置进程的当前工作目录(将
cwd
关键字参数设置为
Popen()
)。我应该怎么做?将
cwd=
关键字参数设置为希望
在类路径中表示的目录。或者在类路径中使用绝对路径。我想要的目录是当前路径,因为我在当前目录中有jar文件。当我运行这个脚本时,它可以正常工作,但是当另一个python函数调用这个脚本时,它会给出错误。thisDir=os.path.dirname(os.path.realpath(file)),这个目录包含jar文件。我也将此路径添加到类路径。还是不行