ImageJ 플러그인과 그 소스를 사용하려면 .dll 라이브러리가 필요합니다. 플러그인이 ImageJ 플러그인 폴더에 아무 문제없이 던져 넣으면 완벽하게 작동합니다.NetBeans에서 ImageJ 플러그인을 시작하면 JNI 오류가 발생합니다. ImageJ만으로 시작하면 잘 작동합니다.
그러나 NetBeans (이미 NetBean 프로젝트 였음)에서 프로젝트를 열었고 ImageJ를 시작하고 플러그인을 설정하는 간단한 테스트 클래스로 IDE에서 시작하려고 새로운 기능을 추가하기 위해 소스를 수정해야합니다. 프로젝트 디렉토리 \ dir 디렉토리. 이 모든 다른 플러그인에 대해 작동하지만 여기 UnsatisfiedLinkError가 표시됩니다.
종속성 워커 (Dependency Walker)에 대한 조사와 사용 후 일부 프로젝트 경로에서 .dll 파일을 찾지 못했다. 이제는 모든 것을 올바른 장소에두고 -Djava.library.path = "paths_to_all_my_libs"로 실행했지만 여전히 오류가 발생했습니다. 특정 절차를 찾을 수 없습니다.
dist에있는 .jar 파일을 ImageJ의 설치 파일로 복사해야하기 때문에 문제가 있습니다. 콘솔을 사용하여 디버깅 내용을 출력 할 수는 없습니다. 또한 ImageJ만으로도 NetBeans에서 제대로 작동하지 않는 이유를 알 수 없습니다.
어떤 아이디어라도 환영합니다!
사실 내 문제입니다. 나는 (내 프로젝트에 -Djava.library.path 옵션을 사용하여 설정 한) 경로에있는 모든 DLL을 가지고 있지만 프로 시저가있다.이 메서드는 내 기본 코드의 메서드라고 가정 할 때로드 할 수 없다. System.load 또는 System.loadLibrary를 사용하십시오. ImageJ가 사용하는 것과 똑같은 경로를 택하려했지만 NetBeans에서 실행할 때 작동하지 않습니다 – PikCeLL
하지만 PATH 환경 변수도 설정합니까? System.load를 사용하여 라이브러리를로드하려고 할 때 오류가 무엇입니까? 어쩌면 누락 된 다른 DLL이있을 수 있습니까? – mko
PATH 변수를 검사했는데 my .dll이 들어있는 디렉토리가 없습니다.이 디렉토리를 수정하거나 .dll을 PATH 어딘가에 복사 할 권한이 없습니다. System.load를 사용할 때 발생하는 오류는 다음과 같습니다.'예외 "메인"java.lang.UnsatisfiedLinkError : C : \ path_to_my_dll \ Pylon64JNI-visual.dll : 지정된 프로 시저를 찾을 수 없습니다. \t at java.lang.ClassLoader $ NativeLibrary.load (네이티브 메소드)' 경로에있는 라이브러리에 대해 System.loadLibrary를 사용하고 다른 라이브러리에 대해서는 System.load를 사용하여 Pylon64JNI-visual에 종속 된 라이브러리 (DW와 함께 있음)가 미리로드되었는지 확인했습니다. – PikCeLL