¿Dónde puedo ver el proceso java llamado por Python?
Recientemente, estaba haciendo una prueba de estrés de Locust basada en Python. El programa de interfaz API es la versión de Java, lo que provocó que Python no pudiera coincidir con el patrón de firma que necesitaba para llamar al programa de firma de Java. .
Primero debes seguir el paquete de dependencia de Python
pip install jpype1
jpype llama al paquete jar
El principio de jpype es en el proceso de Python Incrustar en la máquina virtual Java y comunicarse con la máquina virtual.
Copiar código
importar jpype
# Si solo hay un programa java, primero debe ingresarlo en un paquete jar para que Python lo haga referencia, y hay un java.jar Se puede utilizar directamente. Frasco, se puede utilizar directamente.
def init_jvm():
jpype.startJVM( jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % 'java.jar ')
def getsign(privateKey,publicKey):
VerCls = jpype.JClass("com.sign.jvm"):
El inicio de JVM es iniciado por jpype.getDefaultJVMPath(). JClass("com.sign") #Paquete java referenciado y nombre de clase
signo = VerCls().getSign(privateKey,publicKey)
signo de retorno
def Shutdowm():
prueba:
jpype.shutdownJVM()
excepto:
pasa
if __name__=="__main__":
init_jvm()
print(getsign("priyyyyyy"," alpha1234"))
apagado ()
Copia el código
La descripción del código es la siguiente:
Debes proporcionar el archivo java.jar. jar, si solo tiene un programa java, primero debe escribir un paquete jar para proporcionar pistas sobre python
La función init_jvm en jpype.startJVM se usa para iniciar la máquina virtual java, -Djava. class.path se utiliza para especificar el paquete jar que queremos llamar.
En getsign, jpype.JClass se utiliza para hacer referencia a la clase de signo. Al crear una instancia y llamar a getSign, se puede realizar la comparación del número de versión.
jpype.shutdownJVM() se utiliza para apagar activamente la máquina virtual Java y liberar recursos.