java - 在 Python 中实际使用 Java 类/JAR?

标签 java python jar jpype pyjnius

我花了很多时间寻找这个并探索了许多解决方案。

这与这个主题有关。 Calling Java from Python

最后,经过测试:

Pyjnius: 无法在 Windows 中安装。

Py4J:可以安装在windows上,但是使用Gateway有点重。

JPype: Python 3 在 5 分钟内安装完毕,可以毫无问题地加载 50Mo JAR。 好消息是语法与 Python 语法完全合并...... https://github.com/tcalmant/jpype-py3

只是想知道,是否有人在 Python 中开发了具有大型 JAR 的 Java 真实世界包装应用程序(即在生产服务器上运行)?

最佳答案

为了节省很多人的时间,我发布了我用于 JPype 的模块,它可以很好地加载 JAR。

import jpype as jp; import numpy as np; import os as os
jarpath= r"D:\zjavajar\\"
mavenurl= r"http://mvnrepository.com/artifact/"



# StartJVM (add "-Xmx" option with 1024M if crash due to not enough memory )
def importJAR(path1="", path2="", path3="", path4=""):
   classpath = path1
   if path2 != "":  classpath = os.pathsep.join((classpath, path2))   
   if path3 != "":  classpath = os.pathsep.join((classpath, path3))
   if path4 != "":  classpath = os.pathsep.join((classpath, path4))        
   jp.startJVM(jp.getJVMPath(),"-ea", "-Djava.class.path=%s" % classpath)


def showLoadedClass(): #Code to see the JAR loaded.
   classloader = jp.java.lang.ClassLoader.getSystemClassLoader(); vv= []; 
   for x in classloader.getURLs():  vv.append(x.toString());         
   return vv


def loadSingleton(class1):  single= jp.JClass(class1);  return Single.getInstance()


def java_print(x):  jp.java.lang.System.out.println(x)   #Print in Java Console

关于java - 在 Python 中实际使用 Java 类/JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736763/

相关文章:

python - 对 UTF-8 编码的日语语料库进行 R 处理

python - Django 忘记密码

python - 按行中的子字符串对 DataFrame 进行排序

java - 使用 Eclipse 导出 jar 不保存更改?

java - 向标记添加多个标签

Java AWT : Setting background of Canvas changes the background for the whole frame

java - Websphere 7 MQueue : how to access queue depth from Java?

Java流: How to find id from json?

java - 构建路径上的两个 JAR 具有相同的方法名称,但构造函数不同。如何指定使用哪个 JAR 的方法?

java - 当IntelliJ运行Maven项目时, "under the hood"会发生什么?