본문 바로가기
Python

Python에서 Java 코드 사용하기(feat. jpype)

by daewooki 2021. 7. 31.
반응형

파이썬에서 Java 모듈을 사용해야하는 경우가 있었다.

 

먼저 jpype를 설치해야한다. 

pip install JPype1

 

 

 

예시로 문자열을 바꾸는 자바 클래스를 생성했다.

package com.jpype.utils;

public class JpypeTest{
	public static String reverse(String str) {
		StringBuffer buf = new StringBuffer();
		for(int i=str.length()-1; i>=0; i--) {
			buf.append(str.charAt(i));
		}
		return buf.toString();
	}
}

이후 필요한 자바 파일을 jar파일로 만들어주어야한다.  (파이썬에서 사용하기 위해서 필수 과정)

jar파일이 생성되면 python workspace 내에 넣어준다.

 

이후 python 코드에 다음과 같이 작성하면 된다.

import jpype

classpath = "JpypeTest.jar"
jpype.startJVM(
    jpype.getDefaultJVMPath(),
    "-Djava.class.path={classpath}".format(classpath=classpath),
    convertStrings=True,
)
jpkg = jpype.JPackage('com.jpype.utils')
Jpype_Test = jpkg.JpypeTest()
Get_Name = jpkg.OAuthTest()

def reverse_string(s):
    return Jpype_Test.reverse(s)


def get_user_name():
    return Get_Name.getUserName()

 

jpype.JPackage 함수를 이용해서 package명을 입력해주고 내부에 있는 클래스를 사용할 수 있다. 

Jpype_Test에 있는 reverse 함수를 이용해 함수를 만들어주었다. 

 

실행 결과

print(reverse_string("안녕하세요"))

결과는 다음과 같이 안녕하세요 -> 요세하녕안 으로 잘 사용되는 것을 확인할 수 있다.

 

 

반응형

댓글