javacpp를 사용하려고하는데 Eclipse (+ Mac OS)에서 약간의 문제가 있습니다. Eclipse에서 javacpp가 작동하지 않습니다. --ClassNotFoundException (JNI 사용)
내 명령 줄이 실행
은 - 그것을 잘 작동합니다#include <string>
namespace LegacyLibrary {
class LegacyClass {
public:
const std::string& getProperty() { return property; }
void setProperty(const std::string& property) { this->property = property; }
private:
std::string property;
};
}
및
import com.googlecode.javacpp.*;
import com.googlecode.javacpp.annotation.*;
@Platform(include="LegacyLibrary.h")
@Namespace("LegacyLibrary")
public class LegacyLibrary {
public static class LegacyClass extends Pointer {
static { Loader.load(); }
public LegacyClass() { allocate(); }
private native void allocate();
public native @ByRef String getProperty();
public native void setProperty(String property);
}
public static void main(String[] args) {
LegacyClass l = new LegacyClass();
l.setProperty("Hello World!");
System.out.println(l.getProperty());
}
}
를 내가 얻을
this 게시물에 제안 최종 결과 : "hello w orld ". 이제
내 이클립스 IDE에이를 복용하고 있는데 어떤 이유로,이 오류가 얻을 : 나는 패키지 com.test에이 개 파일을 배치하고 javacpp.jar 내가에 배치
Exception in thread "main" java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: com.test.LegacyLibrary
at com.googlecode.javacpp.Loader.load(Loader.java:293)
at com.googlecode.javacpp.Loader.load(Loader.java:271)
at com.test.LegacyLibrary$LegacyClass.<clinit>(LegacyLibrary.java:12)
at com.test.LegacyLibrary.main(LegacyLibrary.java:23)
Caused by: java.lang.ClassNotFoundException: com.test.LegacyLibrary
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.googlecode.javacpp.Loader.load(Loader.java:291)
... 3 more
을 classpath. 여기에 누락 된 것이 있습니까?!?! 오류 메시지는 클래스 경로의 내용이 잘못되었거나 누락되었음을 나타냅니다. 그러나 무엇입니까? (또한 다른 폴더에 javacpp.jar 속성을 가리 키려고했지만 같은 오류 메시지가 나타납니다). 어쩌면 VM 인수?!?!
감사합니다.
하는 것으로는'com.test.LegacyLibrary'는 기본 패키지에'LegacyLibrary'와 같은 클래스가 아닙니다. JavaCPP 빌더를 다시 시작하여 새로운 클래스의 새로운 네이티브 라이브러리를 얻었습니까? –
나는 똑같은 문제가있다! 해결책을 찾았습니까? – mrmclovin
아니, 나는하지 않았다. 만약 당신이 그것을 얻었 으면 - – adhg