자바 에서 Python 프로그램 을 어떻게 호출 하 는 지 상세 하 게 설명 합 니 다.
1.Maven 프로젝트 를 새로 만 들 고 다음 의존 도 를 가 져 옵 니 다.
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
2.자바 에서 python 코드 세 션 직접 실행
import org.python.util.PythonInterpreter;
public class InvokePython {
public static void main(String[] args) {
PythonInterpreter pythonInterpreter = new PythonInterpreter();
pythonInterpreter.exec("a='aaa'");
pythonInterpreter.exec("print(a)");
// pythonInterpreter.exec("import pandas as pd");
}
}
위 와 같은 방식 으로 python 코드 세 션 을 실행 합 니 다.사실은 Jpython 을 통 해 이 루어 집 니 다.이런 방식 으로 실행 할 수 있 는 python 코드 세 션 은 비교적 제한 되 어 있 습 니 다.모두 가장 원시 적 인 python 명령 입 니 다.많은 가방 을 사용 할 수 없습니다.예 를 들 어 실행pythonInterpreter.exec("import pandas as pd");
이 잘못 되 었 습 니 다.그래서 이런 방식 은 추천 하지 않 아 요.3.Python Interpreter 클래스 의 execfile()방법 으로 python 스 크 립 트 파일 을 실행 합 니 다.
import org.python.util.PythonInterpreter;
public class InvokePython {
public static void main(String[] args) {
PythonInterpreter pythonInterpreter = new PythonInterpreter();
pythonInterpreter.execfile("F:\\ \\ \\ \\ \\ \\ API.py");
}
}
이런 방식 은 위의 그런 방식 의 본질 과 같 고 실행 할 수 있 는 명령 도 매우 원시 적 이 며 일반적으로 추천 하지 않 는 다.4.Runtime.getRuntime().exec()방법 으로 python 스 크 립 트 실행
원본 python 스 크 립 트
import requests
import json
import sys
def chat_by_Turing(question):
url = "http://www.tuling123.com/openapi/api?key=49de46c409c047d19b2ed2285e8775a6&info="
response = requests.get(url+question)
result = json.loads(response.text)
answer = result['text']
print(" :",answer)
question = sys.argv[1] ##
chat_by_Turing(question)
Runtime.getRuntime().exec()호출
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class RuntimeFunction {
public static void main(String[] args) {
Process proc;
String compiler = "E:\\Anaconda\\Anaconda_install\\python.exe";
// String program = "F:\\ \\ \\ \\ \\ \\ API.py";
String rootPath = "F:\\ \\ \\ \\ \\ \\Python\\src\\main\\resources\\";
String program = " API.py";
try {
Scanner in = new Scanner(System.in);
System.out.print(" :");
String question = in.nextLine();
String commond = compiler+" "+rootPath+program+" "+question;
proc = Runtime.getRuntime().exec(commond);
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream(),"GBK"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
in.close();
proc.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Runtime.getRuntime().exec()는 문자열 형식의 인자command
,전체 구문 Runtime.getRuntime().exec(command)를 입력 해 야 합 니 다.이 문 구 는 자신의 컴퓨터 에 있 는 cmd 를 통 해 실 행 된 python 프로그램 파일 입 니 다.따라서 command 의 구성 은 다음 과 같 습 니 다.python 해석 기+"+python 프로그램 파일 의 절대 경로+"+python 프로그램 파일 에 들 어 갈 인자
command 의 빈 칸 이 없어 서 는 안 됩 니 다.python 스 크 립 트 에 서 는 sys.argv 를 통 해 인 자 를 받 아야 합 니 다.
이러한 방식 으로 python 프로그램 을 실행 하 는 것 은 앞에서 사용 한 python 컴 파일 러 에 달 려 있 습 니 다.컴 파일 러 환경 에 있 으 면 반드시 이런 방식 으로 호출 할 수 있 습 니 다.이런 방식 은 비교적 강하 기 때문에 이런 방식 으로 python 프로그램 을 실행 하 는 것 을 추천 합 니 다.
참조 링크
자바 에서 파 이 썬 프로그램 을 어떻게 호출 하 는 지 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 자바 에서 파 이 썬 프로그램 을 호출 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.