IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> idea 打dll、so包 -> 正文阅读

[开发工具]idea 打dll、so包

写在前面:

参考了:https://blog.csdn.net/huachao1001/article/details/53906237

但是这篇文章有很多问题,配置gcc可以参考上面。

链接:?https://pan.baidu.com/s/1slpQrrJ
密码: fykw

下载解压后,配置环境变量。

创建项目:

IDEA社区版。

什么都别选。

?打钩,确认。

java文件生成jni:

新建java文件:(库名提前想好)

这块跟android的jni一样,terminal命令生成.h文件:

javah -jni -classpath (搜寻类目录) -d (输出目录) (类名)

注意,必须运行一下项目生成class文件。(截图中out文件夹)

这里需要注意一下:-classpath后面跟的目录是out的;并且到项目根目录停止。

javah -jni -classpath  D:\IdeaProjects\2\out\production\2 -d D:\IdeaProjects\2\jni  com.company.HelloJNI

运行后生成:.h文件

?新建一个名字相同的.c,在这个例子里就是HelloJNI.c。.h文件名字不要改。

这里是C基础了,不赘述。

打dll、lib包:

gcc -shared ?-I "D:\Java\jdk1.8.0_201\include"-I "D:\Java\jdk1.8.0_201\include\win32" -o ?hello.dll HelloJNI.c

需要加入链接库-I,一个是jdk的include,一个是include下的win32。

主要是为了jni.h加入的,gcc的具体命令可以百度下哦。

gcc是“写在前面”里提前准备好的。C用gcc,C++用g++。

dll文件看不到的话,文件夹闭开一下:

C++用g++去编译,如果报错找不到:xxx.cpp: No such file or directory

记得把cpp文件路径写对,或者cd到jni里面。

dll引入:

这个时候运行HelloJNI.java文件,还是会报错:

idea no hello in java.library.path

dll没有自动引入,需要手动加进去,这点真不如android studio:

File -> Project Structure -> Library -> + -> 选中项目中的dll文件 -> OK

最终是下图这样子:

再运行一下:

?OK啦。

写在最后:

1.参考资料可以看看,但是细节太差,错误很多。

百度上面很多复制粘贴也是不行,请教了c++工程师,他帮我写的gcc编译的。

gcc -Wl,--..... 这个编辑器直接报语法错误。

2.静态包就是gcc指令改成-static,文件名改成hello.lib。

3.网络上铺天盖地的HelloJNI编译jni,但是都没有提到多文件怎么打包,我也正在摸索。公司项目都是层层嵌套,引入第三方库的文件。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:33:21  更:2021-08-05 17:35:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/20 15:24:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码