Topwo博客
首页
博客
项目
从C/C++程序调用Java代码
Java
2021-09-26
JNI允许您从本机代码内调用 Java 类方法。 要做到这一点,通常必须使用 Invocation API 在本机代码内创建和初始化一个 JVM。 下列是您可能决定从 C/C++ 代码调用Java 代码的典型情况: 1. 希望实现的这部分代码是平台无关的,它将用于跨多种平台使用的功能。 2. 需要在本机应用程序中访问用 Java 语言编写的代码或代码库。 3. 希望从本机代码利用标准 Java 类库。 从C/C++ 程序调用 Java 代码的四个步骤: #### 1.编写 Java 代码。
阅读原文>>
java JNI编程技巧——JAVA调用c/c++(4)
Java
2021-09-26
### 步骤 5:创建共享库文件 接下来,我们创建包含本机代码的共享库文件。 大多数 C 和 C++ 编译器除了可以创建机器代码可执行文件以外,也可以创建共享库文件。 用来创建共享库文件的命令取决于您使用的编译器。 下面是在 Windows执行的命令。 #### Windows: 使用visual studio commandprompt工具cl.exe ```shell cl -I"C:\Program Files\Java\jdk1.6.0_10\include" -I"C:\Program Files\Java\jdk1.6.0_10\include\win32" -LD test_JNI_javaCallc_test.c -Fe test_JNI_javaCallc_test.dll ```
阅读原文>>
java JNI编程技巧——JAVA调用c/c++(3)
Java
2021-09-26
### 步骤 4:编写 C/C++ 代码 当谈到编写 C/C++ 函数实现时,有一点需要牢记:说明必须和 JNI_javaCallc_test.h 的函数声明完全一样。 我们将研究用于 C 实现和 C++ 实现的完整代码,然后讨论两者之间的差异。 C函数实现 以下是 JNI_javaCallc_test.c,它是用 C 编写的实现: ```c #include <jni.h>
阅读原文>>
java JNI编程技巧——JAVA调用c/c++(2)
Java
2021-09-26
### 步骤 2:编译 Java 代码 接下来,我们需要将 Java 代码编译成字节码。 完成这一步的方法之一是使用随SDK一起提供的Java编译器javac。 用来将 Java 代码编译成字节码的命令是: ```shell cd test javac JNI_javaCallc_test.java ``` 如果是在eclipse环境下编写的以上代码,文件保存时会自动在工程目录的bin下生成以上java文件 ### 步骤 3:创建 C/C++ 头文件
阅读原文>>
java JNI编程技巧——JAVA调用c/c++(1)
Java
2021-09-26
### 步骤 1:编写 Java 代码 我们从编写 Java 源代码文件开始,它将声明本机方法(或方法),装入包含本机代码的共享库,然后实际调用本机方法。 这里是名为JNI_javaCallc_test: 直接使用文本编辑器或在ecilpos中建立工程敲入以下代码: ```java package test; public class JNI_javaCallc_test { //c/c++本地方法
阅读原文>>
java JNI编程技巧——JAVA调用c/c++(0)
Java
2021-09-26
### 一、使用情况 当无法用Java语言编写整个应用程序时,JNI允许您使用本机代码。 在下列典型情况下,您可能决定使用本机代码: #### 1、希望用更低级、更快的编程语言去实现对时间有严格要求的代码。 #### 2、希望从 Java 程序访问旧代码或代码库。 #### 3、需要标准 Java 类库中不支持的依赖于平台的特性。 ### 二、所需软件 eclipse3.4.1、JDK6、VC6.0 ### 三、步骤分析 从 Java 程序调用 C 或 C ++ 代码的过程由六个步骤组成:
阅读原文>>
JNI字段描述符"([Ljava/lang/String;)V"
其他
2021-09-26
`([Ljava/lang/String;)V`它是一种对函数返回值和参数的编码,这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。 一个数组`int[]`,就需要表示为这样`[I`。如果多个数组`double[][][]`就需要表示为这样`[[[D`。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组的类型。 如果以一个`L`开头的描述符,就是类描述符,它后紧跟着类的字符串,然后分号`;`结束。 比如: `Ljava/lang/String;`就是表示类型`String` `[I`就是表示`int[]` `[Ljava/lang/Object;`就是表示`Object[]` JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下: `(参数描述符)返回类型`
阅读原文>>
java jni简介
Java
2021-09-26
### 一、JNI介绍 #### Java 本机接口(Java Native Interface (JNI))是一个本机编程接口,它是 Java 软件开发工具箱(Java SoftwareDevelopment Kit (SDK))的一部分,JNI它提供了若干的API,实现了和Java和其他语言的通信(主要是C&C++)。 #### JNI允许Java代码使用以其它语言(譬如 C 和 C++)编写的代码和代码库。 #### Invocation API(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用Java 代码。 #### 也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢? #### 我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢? 1. 你的Java代码,需要得到一个文件的属性。但是你找遍了JDK帮助文档也找不到相关的API。 2. 在本地还有一个别的系统,不过他不是Java语言实现的,这个时候你的老板要求你把两套系统整合到一起。 3. 你的Java代码中需要用到某种算法,不过算法是用C实现并封装在动态链接库文件(DLL)当中的。
阅读原文>>
mac自带软件以及开发工具下载地址
IOS
2021-09-26
#### mac上开发工具老版本下载地址 [https://developer.apple.com/download/more/](https://developer.apple.com/download/more/) #### 各种版本mac自带软件下载 软件:[https://developer.apple.com/download/all/](https://developer.apple.com/download/all/) 文档:[https://developer.apple.com/documentation/](https://developer.apple.com/documentation/) #### Xcode下载地址 [https://developer.apple.com/cn/support/xcode/](https://developer.apple.com/cn/support/xcode/) [Xcode DeviceSupport](https://github.com/iGhibli/iOS-DeviceSupport)
阅读原文>>
mac系统降级
IOS
2021-09-26
1、按照官方文档创建可引导的macOS安装器 [https://support.apple.com/zh-cn/HT201372](https://support.apple.com/zh-cn/HT201372) 2、选择另一个启动磁盘 [https://support.apple.com/zh-cn/HT202796](https://support.apple.com/zh-cn/HT202796) 3、按照提示一步步安装就行 ### 参考文档 [https://jingyan.baidu.com/article/b0b63dbf36332e4a4930704f.html](https://jingyan.baidu.com/article/b0b63dbf36332e4a4930704f.html)
阅读原文>>
首页
上一页
30
下一页
尾页
文章推荐
从C/C++程序调用Java代码
2021-09-26
java JNI编程技巧——JAVA调用c/c++(4)
2021-09-26
java JNI编程技巧——JAVA调用c/c++(3)
2021-09-26
java JNI编程技巧——JAVA调用c/c++(2)
2021-09-26
java JNI编程技巧——JAVA调用c/c++(1)
2021-09-26