2016-03-02 11 views
1

Я потратил значительное количество времени на поиск этого и исследовал множество решений.Практическое использование Java-класса/JAR в Python?

Это связано с этой веткой. Calling Java from Python

В конце концов, после тестирования:

Pyjnius: не удается установить в Windows.

Py4J: можно установить на окна, но использование шлюза немного тяжелое.

JPype: Python 3 установлен в течение 5 минут, может загружать 50Mo JAR без каких-либо проблем. Хорошая вещь синтаксис полностью слился с синтаксисом Python ... https://github.com/tcalmant/jpype-py3

Просто интересно, если какие-то люди разработали реальный мир оберточной применение Java в Python (т.е. работает на сервере) с большим размером JAR?

ответ

2

Чтобы сэкономить время многим людям, я отправляю модуль, который я использовал для 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 

 Смежные вопросы

  • Нет связанных вопросов^_^