【发布时间】:2018-03-29 14:55:30
【问题描述】:
我正在 Eclipse 中编写一个简单的演示 JNI 项目来集成 Java 和 C 代码。我已经为 Eclipse 安装了 CDT 插件来执行此操作。 使用this project structure,我在 Eclipse 的“(默认包)”中有我的 HelloJNI java 文件,并且使用 makefile 生成 HelloJNI.h C 头文件没有问题。
我的 Makefile:
# Define a variable for classpath
CLASS_PATH = ../bin
# Define a virtual path for .class in the bin directory
vpath %.class $(CLASS_PATH)
# $* matches the target filename without the extension
HelloJNI.h : HelloJNI.class
javah -classpath $(CLASS_PATH) HelloJNI
问题是我无法弄清楚如何让它与 HelloJNI.java 一起工作,它位于 com.example 等包中,而不是默认包中。即this structure。运行相同的 make 目标时,我得到错误输出:
make: *** 没有规则来制作目标“HelloJNI.class”,“HelloJNI.h”需要。停下来。
我尝试将包名添加到 javah 命令中:
javah -classpath $(CLASS_PATH) com.example.HelloJNI
...但得到同样的错误。
我尝试将类路径更改为:
CLASS_PATH = ../bin/com/example
...但得到以下错误:
制作 HelloJNI.h
javah -classpath ../bin/com/example HelloJNI
错误:找不到“HelloJNI”的类文件。
我需要对我的 makefile 做些什么来完成这项工作?
【问题讨论】:
标签: java c eclipse makefile java-native-interface