Где найти исходный код для java.собственные методы Лэнг? [закрытый]
Я смутно знаком с JNI, и мне любопытно увидеть мою машинную реализацию для некоторых собственных методов в java.пакет Ланга. Thread#currentThread()
, например.
Я нашел кучу DLL в [JDK_HOME]/jre / bin, но, как я уже сказал, я пытаюсь найти исходный код.
кто-нибудь знает, где можно найти собственный исходный код? Он вообще доступен, или он классифицируется по Sun (Ой, я имею в виду "мы в нем, чтобы выиграть его" Oracle)?
2 ответа:
для JDK6 вы можете скачать источник из java.net. ибо
java.lang
история начинается сj2se/src/share/native/java/lang/
, а затем поиск... JDK7 немного перестраивает структуру каталогов.некоторые методы, такие как
Object.hashCode
, может быть реализован hotspot вместо или в дополнение к через JNI / Java.JDK6 свободными лицензиями в рамках исследовательской лицензия Ява (JRL) и внутреннего Ява лицензии на использование (линейный). JDK7 и OpenJDK6 лицензированы под GPL 2 с исключением CLASSPATH (грубо говоря, вы можете ссылаться на него, не ловя вирус GNU). Я не юрист.
( Sun UK больше нет. Это теперь Оракул.)
обновление (добавление местоположения для потока.с): http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/native/java/lang/Thread.c
вы можете посмотреть исходный код для OpenJDK (под лицензией GPLv2 с исключением Classpath). Вероятно, лучший способ изучить внутренние компоненты реализации JDK, если вы не хотите быть связанными Java Research Licence в этом случае вы можете получить доступ к фактическому JDK 6 source.