Python에서 Java 호출하는 방법 :: 수알치 블로그

您所在的位置:网站首页 jpype130 Python에서 Java 호출하는 방법 :: 수알치 블로그

Python에서 Java 호출하는 방법 :: 수알치 블로그

2023-04-10 06:49| 来源: 网络整理| 查看: 265

Python에서 Java 호출하는 방법

 

글. 수알치 오상문

 

Python에서 자바 클래스를 호출하는 방법은 크게 두 가지인 것 같습니다. 

 

먼저 자바를 실행할 수 있는 환경인지 확인하고 진행하세요. 다음처럼  java -version 명령을 입력할 때 자바 버전이 출력되어야 합니다.

 

java -version

openjdk version "1.8.0_362" OpenJDK Runtime Environment (Temurin)(build 1.8.0_362-b09) OpenJDK 64-Bit Server VM (Temurin)(build 25.362-b09, mixed mode)

 

1) 자바 실행 명령어 이용하여 자바 클래스 실행하기 (os 또는 subprocess)

 

이제 HelloWorld.java 자바 파일을 만듭니다. 

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }

아래 명령으로 자바 코드를 컴파일합니다.

 

javac HelloWorld.java 

 

혹시 한글 때문에 아래와 비슷한 인코딩 오류가 발생하면 

HelloWorld.java: ... : error: unmappable character for encoding MS949 // Jar ?뙆?씪 ?떎?뻾

 

다음처럼 한글 코드를 직접 지정하여 컴파일을 시도합니다.

javac HelloWorld.java -encoding UTF8

 

컴파일에 성공하면 HelloWorld.class 파일이 만들어집니다.

 

같은 폴더에 main.py 파이썬 파일을 만듭니다.

import os import subprocess os.system('java HelloWorld') subprocess.call(['java', "HelloWorld", ])

 

다음처럼 명령하여 파이썬 코드를 실행하고 Hello, World!가 출력되는지 확인합니다.

 

python main.py

 

[실행 결과]

Hello, World!

Hello, World!

 

 

2) Python에서 자바 클래스에 접근할 수 있게 도와주는 패키지 이용 (예; JPype)

 

이번에 자바 코드를 직접 호출하고 결과 값을 가져오는 예제입니다.

 

먼저 jPype를 설치해야 합니다. 다음 명령을 실행하세요.

 

pip install jpype1

 

이미 설치된 상태면 아래 같은 메시지가 나타나지만, 설치되지 않은 경우에 설치가 진행됩니다.

 

Requirement already satisfied: jpype1 in c:\users\sangmun\appdata\local\programs\python\python310\lib\site-packages (1.4.1) Requirement already satisfied: packaging in c:\users\sangmun\appdata\local\programs\python\python310\lib\site-packages (from jpype1) (23.0)

 

다음처럼 Calculator.java 파일을 만듭니다.

public class Calculator { public int add(int x, int y) { return x + y; } public int subtract(int x, int y) { return x - y; } }

 

아래 명령으로 자바 코드를 컴파일하면 Calculator.class 파일이 만들어집니다.

 

javac Calculator.java

 

이번에는 Calculator.class 파일에 있는 기능을 파이썬에서 직접 호출하는 main.py 예제 코드입니다.

import jpype # JVM을 시작합니다. jpype.startJVM(jpype.getDefaultJVMPath()) # Java 클래스를 로드합니다. Calculator = jpype.JClass("Calculator") # Java 메소드를 호출합니다. calc = Calculator() result = calc.add(1, 2) print("1 + 2 =", result) # JVM을 종료합니다. jpype.shutdownJVM()

 

[실행 결과]

1 + 2 = 3

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3