python和java之间相互调用

java提供server能力

首先java服务中引用 依赖

    
      net.sf.py4j
      py4j
      0.10.7
    

首先java端定义使用pythonServer网关入口

com.test.EntryPoint

入口

package com.test;

import py4j.GatewayServer;

public class EntryPoint {

private Stack stack;

public EntryPoint() {

stack = new Stack();

stack.push("Initial Item");

}

public Stack getStack() {

return stack;

}

public static void main(String[] args) {

// EntryPoint 为暴露的服务

GatewayServer gatewayServer = new GatewayServer(new EntryPoint(),11111);

gatewayServer.start();

System.out.println("Gateway Server Started");

}

}

python调用java服务。

python调用

推荐基于venv 运行处理

from py4j.java_gateway import JavaGateway, GatewayParameters

// 注意访问端口,需要和暴露的一致

gateway = JavaGateway(gateway_parameters=GatewayParameters(port=11111))

stack = gateway.entry_point.getStack()

random = gateway.jvm.java.util.Random()

value = random.nextInt(10)

stack.push("First %s" % ('item'))

item = stack.pop()

print(item)

print(value)

你可能感兴趣的:(java,java,python)