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

如何在Java中为ServerSocketChannelImpl重建JDK JNI C代码?,java,c,java-native-interface,real-time,nio,Java,C,Java Native Interface,Real Time,Nio,我下载了JDK源代码,并试图在ServerSocketchannel中进行修改。对accept0方法使用本机代码。此方法的本机代码位于中。我需要在那里做一个小的更改并重建.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 -share

我下载了JDK源代码,并试图在ServerSocketchannel中进行修改。对accept0方法使用本机代码。此方法的本机代码位于中。我需要在那里做一个小的更改并重建.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

但是对于jvmc源代码,我不确定如何继续。如果有人有一个想法,那么如果你是在执行原生方法,你应该在你的代码上运行java,它将生成H文件,这些文件将填充C++代码,现在你把编译产品包括头文件添加到你的类路径。

如果你是在执行原生方法,你应该在代码上运行javah,它将生成H。将填充C++代码的文件,现在你把编译产品添加到你的类路径中。

JDK7指令可能给出一些指针——JDK7指令可能给出一些指针-不回答问题。读一下。他问的是如何重新编译和指责现有的JNI库,而不是如何从头开始使用新的JNI库。为什么不从头开始重建项目,区别是什么?没有回答这个问题。读一下。他问的是如何重新编译和指责现有的JNI库,而不是如何从零开始使用新的JNI库。为什么不从头开始重建项目,区别是什么?