2012-12-13 24 views
2

我下載了JDK源文件,並且試圖在ServerSocketChannelImpl中進行修改。 ServerSocketChannelImpl.java使用accept0方法的本機代碼。此方法的本地代碼位於ServerSocketChannelImpl.c。我需要做一個小的變化也和重建.so庫,所以我可以用我的JVM使用。如何在Java中重建ServerSocketChannelImpl的JDK JNI C代碼?

當我建立我自己一般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源代碼,我不知道如何着手。有人有想法嗎?

+0

jdk7指令可能會給出一些指針 - http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html – Matt

+0

爲了什麼目的? – EJP

回答

-1

如果你是實現本機方法,你應該在你的代碼運行JAVAH,它會生成.h文件,將填補你有現在你添加編譯產品包括頭部到類路徑的C++代碼。

+0

不回答問題。閱讀。他問的是如何重新編譯和重新編寫一個現有的JNI庫,而不是如何從頭開始。 – EJP

+0

爲什麼不從頭開始重建項目,有什麼不同? –