Java CPP的坑有哪些

发布时间:2021-12-30 15:30:07 作者:iii
来源:亿速云 阅读:171

这篇文章主要讲解了“Java CPP的坑有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java CPP的坑有哪些”吧!

1.分清楚System.load与System.loadLibrary

System.load
//System.load 参数必须为库文件的绝对路径,可以是任意路径,例如:
 System.load("C:\\Documents and Settings\\TestJNI.dll"); //Windows
 System.load("/usr/lib/TestJNI.so"); //LinuxSystem.loadLibrary
//System.loadLibrary 参数为库文件名,不包含库文件的扩展名。
 System.loadLibrary ("TestJNI"); //加载Windows下的TestJNI.dll本地库
 System.loadLibrary ("TestJNI"); //加载Linux下的libTestJNI.so本地库
 //注意:TestJNI.dll 或 libTestJNI.so 必须是在JVM属性java.library.path所指向的路径中。1231234

2.以上为原理(都不好使!!!)

GlobalFunction.getSingleton().loadJNILibrary("zlprint");loadJNILibrary
 这个方法是自动从classpath或者jar包中寻找 zlprint.dll 或者 zlprint.so(具体根据OS系统平台决定)
 重复加载相同的dll会报错哦!
 loadJNILibrary要区分x86和x64,假设你有相同的两个zlprint.dll,请在前面加上目录限定名称,比如:windows-x86_64/zlprint12

3.JavaCPP的坑

执行这些命令行的时候需要在Visual Studio 20XX的命令提示符下运行
$ javac -cp javacpp.jar NativeLibrary.java
$ java -jar javacpp.jar NativeLibrary
$ java  -cp javacpp.jar NativeLibrary
因为最后一行命令会调用VS的运行环境编译器cl.exe,不是在Visual Studio x64 Win64 Command Prompt (2010)命令中执行就找不到这玩意儿!
如果你写的xxx.java文件中包含了package信息,编译的时候应该把xxx.class文件放在package目录下才能够编译(这是java常识)
JavaCPP中的注解annotation都是针对c++文件生成而言,跟java文件本身没有任何毛关系!
作用是为了配置生成的cpp代码而存在
@Platform(include=“PrintLib.h”,link =“D:/javacpp-bin/zlprint”)
头文件包含可以这样:include={“PrintLib.h”,“string.h”}

感谢各位的阅读,以上就是“Java CPP的坑有哪些”的内容了,经过本文的学习后,相信大家对Java CPP的坑有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 编写Java的坑有哪些
  2. Java应该避免的坑有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java如何实现三目运算

下一篇:Java中如何实现do while循环

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》