스프링 프로젝트에서 python으로 작성한 챗봇을 실행시키고자 한다.
Jython을 사용하면 Java에서도 python을 실행시킬 수 있다는 정보를 얻어 한번 시도를 해보았다.
build.gradle 파일에 dependency를 추가해주자.
https://www.jython.org/news.html
https://jython-devguide.readthedocs.io/en/latest/release_jy.html?highlight=build.gradle
이 글을 작성하는 시점을 기준으로 최신 버전이 2.7.3 이라고 하니 최신 버전으로 추가해주자.
implementation 'org.python:jython-slim:2.7.3rc1' //jython
우선 테스트를 위해 간단한 python코드를 작성하고 Jython을 이용해 실행시켜보았다.
pyTest.py
print('jython test')
print('good')
JythonTest.java
import org.python.util.PythonInterpreter;
public class JythonTest {
private static PythonInterpreter interpreter;
public static void main(String[] args) {
interpreter = new PythonInterpreter();
interpreter.execfile("src/main/java/chat/crawling/bot/pyTest.py");
interpreter.exec("");
}
}
결과창
pyTest2.py
def Sum(a , b):
return a+b
JythonTest.java
package chat.crawling;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public class JythonTest {
private static PythonInterpreter interpreter;
public static void main(String[] args) {
interpreter = new PythonInterpreter();
interpreter.execfile("src/main/java/chat/crawling/bot/pyTest2.py");
interpreter.exec("result = Sum(5, 10)");
PyObject result = interpreter.get("result");
System.out.println(result);
}
}
결과창
정상작동함을 확인할 수 있었다.