저는 JNI 응용 프로그램을 만들고 있습니다. 이것은 일부 Java 메소드를 호출하는 C 프로그램입니다.패키지 이름이 JNI 클래스 경로를 위반합니까?
나는 인터넷 예제에 따라 작성했습니다.
먼저 Eclipse Indigo에서 간단한 예제를 만들었습니다 (Java 파일을 "기본 패키지"로 만들었습니다). 그럼 난 C 코드에서 이런 식으로 뭔가를 사용 :
options.optionString = "-Djava.class.path=/home/elias/workspace/Funciones/bin";
모두 잘 작동하지만 그때 나는 "Funciones"라는 패키지의 Java 코드를 가지고있는 자바 proyect을 만든 재, 그래서 수정에 :
options.optionString = "-Djava.class.path=/home/elias/workspace/Funciones/bin/Funciones";
하지만 지금은 작동하지 않습니다 ... 나는 classpath에서 내가 잘못한 것으로 생각합니다.
누군가 나를 도와 줄 수 있습니까?
감사합니다.
클래스 경로가 * 내부를 가리 안 패키지 이름 접두사 클래스 이름 - 클래스를 찾으려면, 당신은 fully qualified name를 사용할 필요가 패키지를 지키는 디렉토리. 원래 버전이 작동해야합니다. – millimoose
답변 해 주셔서 감사합니다. 원본이 작동하지 않을까 걱정됩니다 ... 나는 이것을 가지고 있습니다 : funciones = (* env) -> FindClass (env, "Funciones"); 어쩌면 문제가 여기에 있을까요? 감사. – user1274605
'Funciones'가 패키지 인 경우 찾고있는 클래스 이름이 분명하지 않습니다. 코드의 레이아웃이 무엇인지 모르지만'(* env) -> FindClass (env, "Funciones/Funciones"); ' – millimoose