java-使用JNI生成c / c标头
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用JNI生成c / c标头,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2071字,纯文字阅读大概需要3分钟。
内容图文
![java-使用JNI生成c / c标头](/upload/InfoBanner/zyjiaocheng/674/629656a7ad2a4456a6b488116af00e13.jpg)
我试图用“ javah-jni”生成一个C头,而javah.exe返回一个我从未见过的错误.我使用JNI是因为我使用NDK进行C/C++ android开发.
这是错误消息:
An exception has occured in the compiler (1.7.0_01).
java.lang.ClassCastException:
com.sun.tools.javac.api.ClientCodeWrapper$WrappedJavaFileManager cannot be cast to
com.sun.tools.javac.file.JavacFileManager
at com.sun.tools.javac.main.Main.compile(Main.java:411)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:513)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
at com.sun.tools.javah.Main.main(Main.java:46)
这是我与jni一起使用的Java文件:
package AndroidTest.AccelerometerTest
public class NativeCaller{
final private static String LIB_NAME = "AccelerometerTest";
static
{
System.LoadLibrary( LIB_NAME );
}
public static native int TestMethod();
public static native float ComputePointPosition();
}
我已经搜索了太阳的Bug游行,但找不到任何有用的东西.
编辑:
这是我的平台:
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)
我正在像这样调用javah:javah -jni NativeCaller.java
我称它在.java文件夹中.
我试图用完整的包名称来调用它,但是找不到类.
解决方法:
您如何调用javah?确保使用包括包名在内的完全合格的类名来调用它.例如,我只是做了以下工作,它们工作得很好(我在终端上工作的Mac上).另外,您的工作平台/ java实现/版本是什么?
$mkdir jnitest
$cd jnitest
$mkdir AndroidTest
$mkdir AndroidTest/AccelerometerTest
$vim AndroidTest/AccelerometerTest/NativeCaller.java
[pasted your code into the file, fixing two typos]
[missing ';' and loadLibrary starting with lower-case 'l']
[saved the file and exited editor]
$javac AndroidTest/AccelerometerTest/NativeCaller.java
$javah -jni AndroidTest.AccelerometerTest.NativeCaller
$ls
AndroidTest AndroidTest_AccelerometerTest_NativeCaller.h
我的Java版本是:
$java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
内容总结
以上是互联网集市为您收集整理的java-使用JNI生成c / c标头全部内容,希望文章能够帮你解决java-使用JNI生成c / c标头所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。