python中的excute.jar文件

python中的excute.jar文件,python,matlab,subprocess,executable-jar,jpype,Python,Matlab,Subprocess,Executable Jar,Jpype,我试图通过jar文件访问服务器数据。在MATLAB中执行此操作非常简单: javaaddpath('*PATH*\filename.jar') WWS=gov.usgs.winston.server.WWSClient(ip,port); Data = eval('WWS.getRawData(var1,var2,var3)'); WWS.close; 问题是,我需要在Python中执行此操作,但我不知道如何翻译这几行代码。我尝试过使用子流程模块,如: WWS=subprocess.call(

我试图通过jar文件访问服务器数据。在MATLAB中执行此操作非常简单:

javaaddpath('*PATH*\filename.jar')
WWS=gov.usgs.winston.server.WWSClient(ip,port);
Data = eval('WWS.getRawData(var1,var2,var3)');
WWS.close;
问题是,我需要在Python中执行此操作,但我不知道如何翻译这几行代码。我尝试过使用子流程模块,如:

WWS=subprocess.call(['java', 'gov/usgs/winston/server/WWSClient.class'])
但我能得到的最好结果是,找不到或加载主类gov.usgs.winston.server.WWSClient.class时出错


感谢所有的帮助

有几种方法可以做到这一点。最简单的方法之一是

导入子流程 run[java,-jar,*PATH*\filename.jar]
python子进程命令运行一个系统命令。它将列表作为参数,列表只是您要运行的系统命令及其参数。

您还可以使用以下代码:

导入子流程 command=java-jar 结果=subprocess.Popencommand,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE.communicate
结果是jar文件的输出。

您的地址是python示例中的一个类的地址!但是你想运行一个jar文件。是吗?是的,这是正确的,这个.jar只包含数百个类,我需要首先执行的是WWSclient.class。非常感谢您的回复,我收到了错误no main manifest属性,在*path*/filename.jar CompletedProcessargs=['java','-jar','*path*/filename.jar'],returncode=1main manifest属性在创建jar文件时添加到jar文件中。您是否制作了jar文件本身,如果是,您是否使用了IDE?大多数IDE都有一种创建清单的方法,因此您不必自己创建清单。如果您正在使用Intellij,这可能会有所帮助。我不是自己做的,不幸的是我对Java不太了解,所以我完全理解它在做什么。如果我向正确的类WWSclient.class提供有关ip和端口的信息,它基本上会打开到我的服务器并为我收集请求的数据。感谢您的帮助,但它似乎也不会通过。不幸的是:我在Mac b上收到此错误,b/bin/sh:-c:第0行:意外标记换行符“\n/bin/sh:-c:第0行:java-jar”附近的语法错误,在Windows上,该命令的语法不正确。为了澄清,我想在jar文件中使用两个变量ip和port执行一个特定的类WWSClient.class。是否可以在不打开jar的情况下执行WWSClient.class?