JNI无法找到或加载主类 - 唯一问题

时间:2011-09-20 21:54:13

标签: java c java-native-interface

我尝试了很多选项来解决这个问题,但找不到解决方案。我也创建了头文件和DLL。设置类路径asd。 Javac命令工作正常。当我运行此文件时,我收到错误:无法找到或加载主类com.log.jni.example.HelloWorld。请你帮助我好吗。这是我的档案。

  public class HelloWorld {
  private native void print(String path);
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    String path="C:\\Capture.pcap";
    new HelloWorld().print(path);

}
static {
    System.loadLibrary("HelloWorld");
}
}

2 个答案:

答案 0 :(得分:2)

可能是您的静态初始化程序失败了。

以下代码:

public class Main 
{
    static
    {
        if (true)
            throw new Error("Error is here");
    }

    public static void main(String... args)
    {
        System.out.println("I am running");
    }
}

产生输出:

Exception in thread "main" java.lang.Error: Error is here
    at Main.<clinit>(Main.java:22)
Could not find the main class: Main.  Program will exit.

在“找不到主类”错误之前是否打印出任何堆栈跟踪?在此示例中,找到了类但由于静态初始化程序中抛出异常而无法初始化。在您的代码中,可能的怀疑是System.loadLibrary()调用失败并带有UnsatisfiedLinkError

答案 1 :(得分:0)

未构建二进制文件时出现错误“无法找到或加载主类...”。单击项目,关闭自动构建。然后单击项目并构建所有项目。然后打开自动构建。