Le code source JVM est-il ouvert?
Le code source JVM est-il ouvert? Sinon, comment puis-je obtenir le code de JVM?
3 réponses
Jetez un oeil à hotspot JVM ici: http://openjdk.java.net/groups/hotspot/
Cela dépend entièrement de la JVM que vous utilisez.
Si vous utilisez la JVM OpenJDK, vous pouvez obtenir le code source de ici .
Si vous utilisez la JVM Kaffe, vous pouvez obtenir la source de ici .
Si vous utilisez la JVM Sun version 6 ou ultérieure, vous pouvez obtenir la source à partir de ici .
Si vous utilisez une JVM Sun antérieure à 6, Vous pouvez souvent obtenir la source sous une Licence académique. Si vous utilisez une JVM IBM, Oracle, HP ou autre, la source n'est pas ouvrir.
Mise À Jour Mai 2013
La source de la Version 6 est toujours accessible par le lien ci-dessus, ou il est accessible via ce lien. Ce dernier lien inclut également une table généalogie pratique qui montre comment les versions Oracle JDK et OpenJDK correspondent les unes aux autres.
De plus, une version plus à jour de la source Java 7 peut être trouvée ici. Cela inclut également les correctifs pour les versions de Java 7 depuis GA.
Et, de non surprise pour tout le monde, les sources Java 8 peuvent être trouvées ici .
La partie centrale de la JVM se trouve dans le module hotspot de L'OpenJDK. Cependant, ce dont vous avez besoin est plus susceptible d'être dans src.zip.
Le module hotspot en dehors de ces classes est
- surtout en C++
- pas toujours facile à comprendre. Cela s'est amélioré au fil des ans et le nouveau code a tendance à être meilleur car ils sont plus conscients que le code aura une consommation plus large.
- souvent pas ce que vous cherchez.
Pour cette raison, si vous voulez savoir comment le JVM s'exécute il est préférable de regarder les classes couramment utilisées. Par exemple, même quelque chose d'aussi bas que la façon dont lambdas fonctionne vraiment à l'exécution est principalement dans le src.zip pas beaucoup est dans la JVM.
La plupart des sources pour les bibliothèques viennent avec le JDK dans le src.fichier zip. Votre IDE l'utilisera automatiquement. Vous êtes beaucoup mieux d'être familier avec les classes dans ces bibliothèques que de jouer avec le JDK lui-même.