相关疑难解决方法(0)

Javah工具错误:无法找到hellojni的类文件

我试图在Windows 7操作系统上从命令行使用javah工具创建头文件,但我一直都失败了.

我有不同的方法,甚至从oracle阅读javah工具的文档,但他们没有帮助克服这个问题.

我的类file(hellojni.class)和java file(hellojni.java)都在D:\驱动器的根目录中.

但每当我运行javah工具时它会给我一个错误:

找不到hellojni的类文件

我尝试提供类路径,但没有得到任何头文件.

java java-native-interface javah

31
推荐指数
3
解决办法
3万
查看次数

无法使用JNI从java调用C++的成员函数

我按照下面给出的指令 从Java中调用c函数调用c函数, 然后我就可以调用C++函数了.但是现在我想从Java调用C++类的成员函数.为了清楚地描述它,我引用了下面的场景.

JAVA.有一个名为HelloWorld.java的类,它有一个名为print() Now的本机函数,使用Java的JNI我已经为HelloWorld创建了等效的头文件.之后我在HelloWorld.cpp中编写了这个头文件的实现

现在从"HelloWorld.cpp"我想调用"rectangle.cpp"的成员函数,我已经为其创建了"rectangle"对象并调用了它的相应函数.但是在编译代码时,它会给我一个名为"未解析的外部符号"的错误.相反,当我在rectangle.h中的相应头文件"rectangle.cpp"中编写所有实现时,代码编译得很好,它给了我想要的结果.我的问题,没有办法,然后我可以调用.cpp类的成员函数而不是它相应的头文件函数.

以下是代码片段::

HelloWorld.java

 class HelloWorld {

 private native void print();
 private native void multiply();


 public static void main(String[] args) {
     new HelloWorld().print();
     new HelloWorld().multiply();

 }

 static {
     System.loadLibrary("HelloWorld");
 }  }
Run Code Online (Sandbox Code Playgroud)

HelloWorld.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    print
 * Signature: ()V
 */

JNIEXPORT void …
Run Code Online (Sandbox Code Playgroud)

c++ java java-native-interface interop

5
推荐指数
1
解决办法
1575
查看次数

标签 统计

java ×2

java-native-interface ×2

c++ ×1

interop ×1

javah ×1