gpt4 book ai didi

eclipse 中的 javacpp 不起作用——ClassNotFoundException(使用 JNI)

转载 作者:太空狗 更新时间:2023-10-29 23:19:28 25 4
gpt4 key购买 nike

我正在尝试使用 javacpp,但在使用 eclipse (+ mac OS) 时遇到了一些困难。

当我在我的命令行中运行它时 - 它工作正常:

#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 world”。

现在我将其放入我的 eclipse IDE 中,出于某种原因,我得到了这个错误:

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

我将这 2 个文件放入包 com.test 中,并将 javacpp.jar 放入类路径中。我在这里遗漏了什么吗?!?!错误消息表明类路径中的某些内容不正确(或丢失),但它是什么? (我还尝试将属性指向不同文件夹中的 javacpp.jar,但我收到相同的错误消息)。也许 VM 参数?!?!

谢谢!

最佳答案

您是否将 javacpp.jar 文件添加到项目库中?转到项目属性,然后是构建路径信息,应该有一个库选项卡。添加一个外部 Jar 文件,然后选择 javacpp.jar 文件。

enter image description here

关于eclipse 中的 javacpp 不起作用——ClassNotFoundException(使用 JNI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com