2017-02-27 4 views
0

자바에서 파이썬 코드를 호출하고 싶습니다. 어떻게 그 달성의 가장 좋은 방법이 될 것입니다, 그래서 내가 할 수있는 : 자바에서 전달 된 매개 변수와Java를 비동기식으로 호출하십시오.

  • 시작 특정 기능 또는 스크립트는
  • 통신 비동기합니다 (I는 자바로 작성된 사용자 인터페이스를 차단하지 않고 나는 사용자가 Python으로 작성 작업을 수행하는 동안 사이에 추가 출력을 수신 할 수 있도록 자바로 작성된 GUI를 생성하는 것입니다 객체 및 인수 자바와 파이썬 스레드 사이)

같은 응용 프로그램의 목적을 보내고 싶습니다 파이썬은 어떤 일을하고 있습니다.

+0

소켓 통신은 코드 언어와 무관하므로 무엇을 시도 했습니까? –

+0

예 :) 서버 솔루션에 대해 생각했지만 JNI와 유사한 것일까? (JNI를 통해 C에서 Java로 콜백을 할 수있는 것처럼) –

+0

자이 썬을 보았습니까? http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html#using-jython-within-java-applications는 시작할 곳을 알려줍니다. – chepner

답변

0

파이썬 프로그램을 비동기 적으로 호출하려는 이유는 무엇입니까? Java의 멀티 스레딩을 사용하지 않는 이유는 무엇입니까? 기본적으로 아이디어는 별도의 스레드에서 파이썬 코드를 호출하는 것입니다. 간단한 (자바 8) 형태로이 같은 것입니다 :

new Thread(() -> { 
    ProcessBuilder pb = new ProcessBuilder("python","mytest.py", param1, param2); 
    Process p = pb.start(); 
    // more code to capture the output here 
}).start(); 

을 아니면 java.util.concurrent.FutureTask처럼 뭔가 조금 더 정교한를 사용할 수 있지만 개념은 여전히 ​​동일합니다, 당신의 주요 프로그램은 스레드를 생성합니다 기다리지 않고 즐겁게 보낼 수 있습니다.