1、问题:javah or  javac -h

在配置好java的环境变量后,java和javac都是可以用的,但是用javah就会出现问题。

会报错误

Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/bin/javah" (-1)

后来就在网上搜了一下jdk-10.0.2发现,这个版本的jdk取消了javah,直接改用javac -h代替了

那我们就可以直接使用javac -h了

2、除了上面的问题,其余过程可参考:https://my.oschina.net/gschen/blog/1613890

总结过程:

(1)编写java文件,定义native方法,加载步骤4生成的jni动态链接库;

(2)javac编译java文件为class文件,javac HelloNative.java -h . 编译出c头文件,头文件里面声明了native方法;

(3)根据头文件,新建c文件,通过c语言实现native方法;

(4)使用gcc将c文件编译成动态链接库,jni文件:

gcc HelloNative.c -o libHelloNative.jnilib -dynamiclib -I/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/include/ -I/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/include/darwin/

(5)运行java程序:java HelloNative

最新文章

  1. AWS S3 CLI的权限bug
  2. 收藏的 500多个开源的Git源码
  3. COM技术の接口
  4. python中的md5加密
  5. Makefile简介
  6. 2013 Multi-University Training Contest 4 Who's Aunt Zhang
  7. mv、umask、chattr、lsattr命令
  8. winform 导出TXT 分类: WinForm 2014-05-15 15:29 128人阅读 评论(0) 收藏
  9. 【转】文件读写NDK(或Linux)
  10. Resizable(调整大小)组件
  11. SSD的基本架构
  12. sudo service memcached start
  13. php七牛批量删除空间内的所有文件方法
  14. Android 实战美女拼图游戏 你能坚持到第几关
  15. Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-2.xml, reason:
  16. overlay fs挂载及操作测试
  17. Laravel Blade 模板 @section/endsection 与 @section/show, @yield 的区别
  18. Maven内置属性,pom属性
  19. C中有关引用和指针的异同
  20. 泛型 Generic 类型擦除引起的问题及解决方法

热门文章

  1. 前端工程师技能图谱skill-map
  2. Java中的注解到底是如何工作的?
  3. Python运维-获取当前操作系统的各种信息
  4. Vue 单页应用 的 首屏优化
  5. js数组去重练习
  6. php常见的验证方法
  7. createReadStream().pipe() Callback
  8. C++中创建对象的时候加括号和不加括号的区别(转)
  9. SqlServer 查询的时候过滤条件有参数导致速度很慢的问题-参数嗅探
  10. Java数据库事务四大特性以及隔离级别