이 기사는 Jython을 호출하여 Python 파일을 실행하는 Java 구현 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
웹 개발 중에는 종종 웹 환경의 지역 환경에서 타사 라이브러리를 사용합니다. 이 기사는 Java가 Python 파일을 실행하는 방법을 설명합니다.
온라인으로 세 가지 방법이 있지만 실제로는 두 가지 방법 만 있습니다. 두 번째 방법은 아래에 소개됩니다 (Jython).
방법 1
java.lang.runtime 런타임 rt = runtime.getRuntime (); try {process proc = rt.exec ( "python /tmp/test.py"); } catch (예외 e) {e.printstacktrace (); }다음은 하위 구성입니다.
1 Runtime.getRuntime()
2. 런타임의 대부분의 다른 방법은 인스턴스 메소드입니다. 즉, 런타임 호출이 이루어질 때마다 getRuntime 메소드를 사용해야합니다.
3. 런타임의 종료 메소드는 현재 JVM을 종료하는 메소드 일 것입니다. 시스템 클래스에서 해당 종료가 실제로 Runtime.exit() 호출하여 JVM을 종료하는 것을 보았 기 때문입니다. 여기서는 런타임의 반환 값에 대한 Java의 일반적인 규칙을 설명하겠습니다 (나중에 언급). 0은 정상 출구를 나타내고, 비 0은 비정상적인 낙태를 나타냅니다. 이것은 단지 자바 규칙입니다. 각 운영 체제에는 항상 약간의 혼란이있을 것입니다.
두 번째 유형 (키 포인트)
Jython API에 전화하십시오
1 단계 : 종속성을 추가합니다
<!-https://mvnrepository.com/artifact/org.python/jython-> <pectionency> <groupid> org.python </groupid> <artifactid> jython </artifactid> <bersion> 2.7.0 </version> </dependency>
2 단계 : 새 test.java 테스트 클래스를 만듭니다
import org.python.util.pythoninterpreter; import java.util.properties;/** * 저자 : Xiaoxing 회의 * 이메일 : [email protected] * 날짜 : 17-3-21 * 시간 : 8:18 PM * 설명 : jpython test */public void main (문자열 [] args) pythoninterpreter (); Interpreter.exec ( "days = ( 'mod', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun');"); Interpreter.exec ( "인쇄 일 [1];"); Interpreter.ExecFile ( "/tmp/test.py"); interpreter.exec (2017.3 ' "에 tengxing에 의해 생성 된"인쇄'); }}
3 단계 : 테스트를 실행합니다
테스트는 오후 9시 40 분에 시작되었습니다 ... Tuethis는 테스트입니다.
프로세스가 종료되고 코드 0을 종료했습니다
알림은 다음과 같은 예외를보고 할 수 있습니다.
스레드의 예외 "Main"Importerror : 사이트 모듈 및 그 종속성을 가져올 수 없습니다.
다음 속성이 올바른지 확인하십시오.
이유 : python.import.site 초기화되지 않았습니다
해결하다:
공개 클래스 테스트 {public static void main (String [] args) {속성 props = new Properties (); props.put ( "python.home", "lib 폴더로가는 경로"); props.put ( "python.console.encoding", "utf-8"); props.put ( "python.security.respectjavaaccessibility", "false"); props.put ( "python.import.site", "false"); 속성 preprops = system.getProperties (); pythoninterpreter.initialize (preprops, props, new String [0]); PythonInterpreter 통역 = New PythonInterpreter (); Interpreter.exec ( "days = ( 'mod', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun');"); Interpreter.exec ( "인쇄 일 [1];"); Interpreter.ExecFile ( "/tmp/test.py"); interpreter.exec (2017.3! }}OK 완벽합니다
// Python에서 메소드를 호출하고 결과를 인쇄하고 pyfunction func = (pyfunction) interpreter.get ( "adder", pyfunction.class); int a = 2010, b = 2; pyobject pyobj = func .__ Call __ (새로운 pyinteger (a), new pyinteger (b)); System.out.out.out.out.out.out.out.println ( "anwser ="andser = " pyobj.tostring ());
참조 기사 :
//www.vevb.com/article/137380.htm
//www.vevb.com/article/137385.htm
첨부 파일 : jython.jar 이 사이트를 다운로드하려면 여기를 클릭하십시오.
더 많은 Java 관련 컨텐츠를 보려면이 사이트에 관심이있는 독자는 "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약 및"Java Cache Cache Operation Tips "의 주제를 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.