ProcessBuilder

요한·2025년 3월 25일

Java

목록 보기
1/1

흠.. 프로젝트에서 Python이랑 java랑 연결을 해야해서.. 찾아보다 ProcessBuilder쓰면 java에서 외부 프로그램을 build를 할수있는걸 알았다.

ProcessBulider

java에서 다른 프로세스를 실행하기 위한 클래스 

ProcessBuilder 예제

저는 예제로 python파일을 resoucre안에 넣어 관리했습니다

경로도 확인했으니까 코드 써봅시다!

Code

  1. 실행할 python 파일경로가 /resources/pythonFile/TestFile 이니까
    ClassPathResourec 쓰면 src/main/resources/ 부터 이니까 나머지 pythonFile/TestFile/test.py 파리미터값에 String 값으로 넣어주면 경로 인식한다.
  2. ProcessBuilder 객체 생성하고 첫번째 인자값이 실행해야할 빌드, 나머지 인자값은 실행할 파일
  3. 인텔리제이 console에 값출력하기 위한 메서드
  4. ProcessBuilder를 실행해서 새로운 프로세스를 시작하고, 결과를 처리한다.

문제

???????????????????????????????

나는 가상환경에서 라이브러리를 다운받고 연결 할려는데 지금 cv2파일을 찾을 수 없다고 한다...

하...
이유는 ProcessBuilder에서 첫번째 인자값으로 Python3으로해서 OS에 다운로드 된 python3을 가지고 실행하는거였다.. 그니까 즉 가상환경에서 내가 다운받은 라이브러리리가 있는 python을 사용해줘야한다.

해결 방안

추가코드

String pythonExec = new ClassPathResource("/pythonFile/TestFile/testPython/bin/python3").getFile().getAbsolutePath();

ProcessBuilder 클래스 인자값을 python3 -> pythonExec 로 변경하니까
가상환경으로 세팅한거로 잘 실행 확인할수있다 :)

글 읽어주셔서 감사합니다 :)

profile
코드 깍는 개발자 kangyohan.dev.0421@gmail.com

0개의 댓글