Доступен ли исходный код нативных методов?
Сначала я хочу сообщить вам, что этот вопрос не связан с тем, что является нативной реализацией в Java. Я получил много полезной информации из этой ветки.
Я хочу знать, доступны ли коды нативных реализаций? У меня есть исходный код JDK, но я не могу найти нативные коды для System.currentTimeMillis
или же Runtime.getRuntime().availableProcessors()
или другой родной метод.
2 ответа
Да, смотрите os::javaTimeMillis в /src/os/solaris/vm/os_solaris.cpp
например, увидеть реализацию Solaris.
Тем не менее, есть несколько слоев оболочек, см. JVM_CurrentTimeMillis в /src/share/vm/prims/jvm.cpp
Поскольку базовые методы являются неотъемлемой частью операционной системы, в которой вы работаете с Java, вы не найдете их исходный код в документации JDK. Я полагаю, вам необходимо выяснить, какие именно процедуры вызываются на вашей платформе, и доступен ли для них исходный код (который сильно зависит от вашей ОС).