2011-07-02 28 views
5

Tôi đã dành một chút thời gian để tìm hiểu các phương thức Java Native là gì và chúng được triển khai trong mã phụ thuộc nền tảng (chủ yếu là C).Các phương thức gốc trong Java

Nhưng tôi có thể tìm thấy những triển khai Java gốc ở đâu? ví dụ: phương thức sleep (long millis) của lớp Thread là native. Nhưng đâu là mã thực thi của nó ???

+1

Có thể ở đây? http://stackoverflow.com/questions/2292629/where-to-find-source-code-for-java-lang-native-methods –

Trả lời

4

Mã gốc được triển khai trong JVM (Máy ảo Java). Nhà phát triển Java không phải lo lắng về việc triển khai của họ vì chúng liên quan đến hoạt động bên trong của máy ảo. Tuy nhiên, bạn có thể viết các phương thức riêng của mình bằng cách sử dụng JNI hoặc xem cách chúng được triển khai thực hiện cho một JVM cụ thể.

+0

đến jihedamine .. .Tôi có thể viết các phương thức riêng của mình ????? Làm thế nào thú vị .... Bạn có thể chứng minh cho tôi một thực hiện phương pháp bản địa mẫu? – killerCoder

+0

@killerCoder: xem Google để biết các liên kết trên JNI (Giao diện Native Java) hoặc thậm chí tốt hơn (theo ý kiến ​​của tôi), JNA (Java Native Access). –

+0

Đây là một ví dụ: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniexamp.html#examp –

4

Nhưng tôi có thể tìm thấy những triển khai Java gốc ở đâu?

Bạn sẽ phải tải xuống toàn bộ nguồn của một số JDK. Trong OpenJDK ví dụ, bạn sẽ tìm thấy rất nhiều các tập tin liên quan đến chủ đề:

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

Bạn có thể tìm thấy những triển khai của các chức năng này trong mã nguồn của JRE của bạn. Ví dụ. mã nguồn của OpenJDK 6 là here.

+0

Cảm ơn mọi người vì đã giúp đỡ của bạn ..... :-) – killerCoder

1

Mỗi JVM có triển khai riêng. Bạn có thể thấy việc triển khai OpenJDK tại đây: http://openjdk.java.net/

Các vấn đề liên quan