2012-08-01 3 views
2

사용자 빌드 .class 및 .jar 파일을 JPype으로 가져 오는 방법에 대한 여러 가지 지침을 찾았지만 전혀 작동하지 않는 데 많은 어려움이있는 것 같습니다.JPype 두통

작동 방식 : 표준 자바 항목을 가져 와서 HELLO WORLD 등을 인쇄 할 수 있습니다.

내가 무엇을 시도했다 일부를 :

내가 (여러 폴더 아래) 관련 class 파일이 들어있는 디렉토리 구조, 관련 클래스 파일이 들어있는 항아리의 경로와 -Djava.class.path을 추가하는 시도했습니다, '-Djava.ext.dirs'도 포함됩니다. 필자는 다른 JVM 위치로 다시 컴파일하고 다시 설치했습니다. 인스턴스화하려고하는 클래스는 Outer, public이며 public 생성자가 있습니다.

OSX 10.6에서 Python 2.6.1을 사용하고 있습니다.

나의 현재 테스트 파일 : 내가 JCLASS를 사용하는 경우 항상 JPype에서면 ClassNotFound 예외를 얻을 *

startJVM(getDefaultJVMPath(), '-Djava.class.path=/Users/gestalt/Documents/msmexplorer_git/msmexplorer/MSMExplorer/build/classes') 
java.lang.System.out.println("hello world") 
msmexplorer = JPackage('org.joofee.meh.msmexplorer') 
T = msmexplorer.MSMExplorer() 
shutdownJVM() 

jpype 가져 오기에서; JPackage를 사용하면 패키지에 호출 할 수없는 오류가 발생합니다. 기본적으로 JPype은 내 물건을 찾을 수 없습니다.

감사합니다.

EDIT (유용 할 수있는 디버깅 내용 ...) : 타사 Java 클래스를 사용/가져올 수있는 간단한 방법이 있습니까?

+0

Jpype을 사용하여 Python에서 jar 클래스의 클래스를 실행하는 작업 샘플을 공유 할 수 있습니까? 작동하는 샘플을 찾을 수 없었습니다. 몇 가지 옵션을 시도했지만 '호출 할 수 없음'오류로 실패했습니다. 대답은 – Sankalp

답변

0

패키지가 호출 할 수없는 오류는 link에서 참조됩니다. Java 클래스 파일이 작업 디렉토리에서 액세스 가능한지 확인해야하는 것처럼 보일 수 있습니다. jvm 클래스 패스가 어떻게 작동하는지 모르겠습니다. 어떻게 작동하는지 생각했을 것입니다.

또한 조직 패키지를로드 한 후 나는 쇼를 공유 링크로 하나를 통해 다른 패키지에 점점 시도 할 수 있습니다 :.

msmexplorer = JPackage ('조직') joofee.meh.msmexplorer T = msmexplorer.MSMExplorer()

+0

입니다. 그 이후로 약간의 문제가 발생했습니다. 다른 클래스를 인스턴스화하는 데 문제가 많지 않음을 발견했습니다. 내가 문제가되는 클래스 선언은 다음과 같습니다.'public class MSMExplorer는 JPanel이 MSMConstants를 구현하도록 확장합니다. {'... 그래서 JPanel을 가져올 수 없다는 것이 문제입니까? 또한 JPype의 awt/swing 지원은 기껏해야 최소한이라고 들었습니다. 불행히도, 내 응용 프로그램을 모든 스윙, 그래서 다른 옵션을 찾고 있었어 (않는 한 실제로 jpype에 대한 doable) – bcr