2011-07-02 37 views
5

我花了一些時間學習了什麼是Java Native方法,並且它們是在平臺相關代碼(大多數是C)中實現的。Java中的本地方法

但我在哪裏可以找到Java的原生實現?例如:Thread類的sleep(long millis)方法是本地的。但它的實現代碼在哪裏?

+1

也許在這裏? http://stackoverflow.com/questions/2292629/where-to-find-source-code-for-java-lang-native-methods –

回答

4

本機代碼在JVM(Java虛擬機)中實現。 Java開發人員不應該擔心他們的實現,因爲他們涉及到虛擬機的內部工作。但是,您可以使用JNI編寫自己的本地方法,或者查看它們如何針對特定的JVM實現。

+0

到jihedamine .. 。我可以寫我自己的本地方法嗎?多麼令人興奮....你能演示一個示例本地方法實現嗎? – killerCoder

+0

@killerCoder:查看Google關於JNI(Java本地接口)的鏈接,或者更好的(在我看來)JNA(Java Native Access)。 –

+0

下面是一個例子:http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniexamp.html#examp –

4

但我在哪裏可以找到Java的原生實現?

您必須下載某些JDK的完整源代碼。在OpenJDK的,例如,你會發現很多相關的線程文件:

./jdk/src/share/native/java/lang/Thread.c 
1

你可以找到這些功能的實現在你的JRE的源代碼。例如。 OpenJDK 6的源代碼是here

+0

謝謝大家對你的幫助..... :-) – killerCoder