java - 如何在 Java 中为 ServerSocketChannelImpl 重建 JDK JNI C 代码?

标签 java c java-native-interface real-time nio

我下载了 JDK 源代码,并试图在 ServerSocketChannelImpl 中进行修改。 ServerSocketChannelImpl.javaaccept0 方法使用 native 代码。此方法的 native 代码在 ServerSocketChannelImpl.c 中.我需要在那里做一个小改动并重建 .so 库,以便我可以将它用于我的 JVM。

当我构建自己的通用 JNI 库时,我使用 gcc 命令行,如下所示:

gcc -I/usr/lib/jvm/java-6-oracle/include/ -I/usr/lib/jvm/java-6-oracle/include/linux/ -fPIC -o libHello.so -shared org_tsutils_Hello.c

但对于 JVM C 源代码,我不确定如何进行。有人有想法吗?

最佳答案

如果您要实现 native 方法,您应该在您的代码上运行 javah,它将生成 h 文件,这些文件将填充您现在拥有的 c++ 代码,您将编译产品(包括 header )添加到您的类路径中。

关于java - 如何在 Java 中为 ServerSocketChannelImpl 重建 JDK JNI C 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863306/

相关文章:

Java + Selenium : How to know if WebElement is clickable in a way other than isDisplayed, isEnabled 和 findElement?

c - 分割从文本文件中读取的长句子

java - Java 中的虚拟操纵杆

c - 在 C 中将 int 转换为 char 的问题

c - 具有 2 个 if 的代码不断给出第一个 if 的结果

java - 如何在 JNI 环境的 native 端正确同步线程?

java - 将 Java boolean 数组转换为 C++ boolean 数组

java - 用java访问mtp设备

java - JNI 检测到应用程序错误 : use of invalid jobject when calling NewObject for innerclass

java - 使用 Office-365-SDK-for-Java 获取文件