96SEO 2025-09-02 03:50 2
JPype是Python直接调用Java类库的工具, 支持Python3,无需额外运行时环境。
sudo apt update
sudo apt install openjdk-11-jdk
java -version
pip3 install JPype1
javac -jar TestDemo.jar
from jpype import *
startJVM
TestDemo = JClass
result = TestDemo.testMethod
print
shutdownJVM
Py4J允许Python与Java进程双向调用,适合复杂交互场景。
pip3 install py4j
import py4j.GatewayServer
class MyService:
def greet:
return f"Hello, {name} from Java!"
gatewayServer = GatewayServer)
gatewayServer.start
from py4j.java_gateway import JavaGateway
gateway = JavaGateway
result = gateway.entry_point.greet
print
通过HTTP协议实现Java与Python的解耦通信,适合分布式系统。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping
public String greet {
return "Hello, " + name + " from Java!";
}
}
import requests
response = requests.get
print
gRPC是基于HTTP/2的高性能跨语言框架,适合大规模数据传输。
syntax = "proto3";
package example;
service Greeter {
rpc SayHello returns {}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
protoc --java_out=./java example.proto
protoc --python_out=./python example.proto
import com.example.grpc.Greeter;
import com.example.grpc.GreeterGrpc;
import io.grpc.Server;
import io.grpc.ServerBuilder;
public class GreeterServer {
public static void main throws IOException {
Server server = ServerBuilder.forPort
.addService)
.build;
server.start;
server.awaitTermination;
}
}
from concurrent import futures
import grpc
import example_pb2
import example_pb2_grpc
def run:
server = grpc.server)
example_pb2_grpc.add_GreeterServicer_to_server, server)
server.add_insecure_port
server.start
server.wait_for_termination
if __name__ == '__main__':
run
通过RabbitMQ、 Kafka等消息队列实现Java与Python的异步通信,适合高吞吐量场景。
sudo apt install rabbitmq-server
sudo systemctl start rabbitmq-server
import com.rabbitmq.client.*;
ConnectionFactory factory = new ConnectionFactory;
factory.setHost;
Connection connection = factory.newConnection;
Channel channel = connection.createChannel;
String queueName = "java_python_queue";
channel.queueDeclare;
String message = "Hello from Java!";
channel.basicPublish);
System.out.println;
channel.close;
connection.close;
import pika
connection = pika.BlockingConnection)
channel = connection.channel
channel.queue_declare
def callback:
print}")
channel.basic_consume
print
channel.start_consuming
根据具体需求选择合适的集成方法。
Demand feedback