我正在开发一个客户端-服务器软件,其中服务器是由 python 开发的。我想从 python 中的 java 程序中调用一组方法。所有的 java 方法都存在于一个 jar 文件中。这意味着我不需要加载不同的罐子。
为此,我使用了 jpype。对于来自客户端的每个请求,我调用一个 python 函数,如下所示:
def test(self, userName, password):
Classpath = "/home/DataSource/DMP.jar"
jpype.startJVM(
"/usr/local/java/jdk1.7.0_60/jre/lib/amd64/server/libjvm.so",
"-ea",
"- Xmx512m",
"-Djava.class.path=%s" % Classpath)
NCh = jpype.JClass("Common.NChainInterface")
n = NCh(self._DB_ipAddress, self._DB_Port, self._XML_SCHEMA_PATH, self._DSTDir)
jpype.shutdownJVM()
对于一个函数,它可以工作,但对于第二个调用,它无法启动 jvm。我看到很多抱怨,但我找不到任何解决方案。如果有任何机构可以提供帮助,我将不胜感激。
如果jpype在多个启动jvm中出现问题,有没有办法启动和停止jvm一次?服务器部署在 Ubuntu 虚拟机上,但我没有足够的知识来编写例如为此目的的脚本。你能提供一个链接,或者一个例子吗?