Где найти исходный код для java.собственные методы Лэнг? [закрытый]


Я смутно знаком с JNI, и мне любопытно увидеть мою машинную реализацию для некоторых собственных методов в java.пакет Ланга. Thread#currentThread(), например.

Я нашел кучу DLL в [JDK_HOME]/jre / bin, но, как я уже сказал, я пытаюсь найти исходный код.

кто-нибудь знает, где можно найти собственный исходный код? Он вообще доступен, или он классифицируется по Sun (Ой, я имею в виду "мы в нем, чтобы выиграть его" Oracle)?

2 54

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.