我一直在尝试使用以下命令创建.h文件:
library(data.table)
setDT(dat)[,mean(value),group]
# group V1
# 1: a 0.05444944
# 2: c -0.04324673
# 3: b -0.16894993
当然在做完
之后javah -jni MyClass
它没有给我任何错误消息......
但是每当我执行javac MyClass.java
命令时,我都会收到以下错误:
javah -jni
顺便说一句,我正在使用Windows 10 PC
答案 0 :(得分:0)
看看MyClass中定义的包。可能是你正在使用一些包名,然后你只传递类名 - 这不起作用。
确保通过CLASSPATH提供课程。
或者,您可以通过-cp参数为javah传递类位置(与包一起)。
看看这里:
http://jnicookbook.owsiak.org/recipe-No-001/
你可以找到完全有效的晚餐简单样本。
它应该开箱即用。只是做:
git clone https://github.com/mkowsiak/jnicookbook.git
cd jnicookbook/recipeNo001
make; make test
如果你这里仍有问题。可能是您的安装不太合适。
如果它适合您,只需确保使用Makefile
中可以找到的类似编译标志与JNI玩得开心:)
<强> 更新 强>
正如上面的评论中已经指出的,也许你可以切换到Oracle的JDK?
如果使用Oracle的JDK,则不会出现这种问题。您可以使用javah
轻松生成C头如果您必须坚持使用GCJ(例如遗留代码),可以尝试使用
javah -jni -cp . Main