web-dev-qa-db-fra.com

Le code source ouvert de la JVM est-il?

Le code source ouvert de la JVM est-il? Si non, comment puis-je obtenir le code de la machine virtuelle Java?

59
giri

Jetez un coup d'œil à la machine virtuelle Java (Hotspot JVM) ici: http://openjdk.Java.net/groups/hotspot/

32
D.C.

Cela dépend entièrement de la machine virtuelle que vous utilisez.

Si vous utilisez la machine virtuelle Java OpenJDK, vous pouvez obtenir le code source auprès de ici .
Si vous utilisez la machine virtuelle Kaffe, vous pouvez obtenir le code source à partir de ici .
Si vous utilisez Sun JVM version 6 ou ultérieure, vous pouvez obtenir le code source à partir de ici .

Si vous utilisez une JVM Sun antérieure à 6, vous pouvez souvent obtenir le code source sous une licence académique. Si vous utilisez une machine virtuelle IBM, Oracle, HP ou une autre machine virtuelle, la source n'est pas ouverte.

Mise à jour mai 2013

La source de la version 6 est toujours accessible via le lien ci-dessus ou via ce lien . Ce dernier lien inclut également un tableau pratique genealogy qui montre la correspondance entre les versions Oracle JDK et OpenJDK.

De plus, une version plus récente de la source Java 7 peut être trouvée ici . Cela inclut également les correctifs pour les versions de Java 7 depuis GA.

Et, sans surprise, les sources de Java 8 peuvent être trouvées ici .

57
Paul Wagland

Il n’existe pas de jvm open source, même s’il existe, vous ne pouvez pas contourner la stupide exception de classpath d’Oracle. En bref, openjdk est toujours lié à un système basé sur l’argent qui vous oblige à faire face à une machine virtuelle. Ce n’est pas vraiment différent de Microsoft, vous pouvez travailler avec C # sous n’importe quel système, même en fournissant des bibliothèques .net gratuites, tout en gardant le contrôle de Visual Studio, qui oblige pratiquement l’utilisateur final à utiliser Windows comme environnement choisi.

0
FlyingSocks

La partie principale de la machine virtuelle Java se trouve dans le module Hotspot d’OpenJDK. Cependant, ce dont vous avez besoin est plus susceptible d’être dans src.Zip.

Le module Hotspot en dehors de ces classes est

  • principalement 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 recherchez.

Pour cette raison, si vous souhaitez savoir comment fonctionne la machine virtuelle Java, il est préférable de consulter les classes couramment utilisées. Par exemple, même quelque chose d'aussi bas que le fonctionnement réel des lambdas à l'exécution se trouve principalement dans le fichier src.Zip, mais pas beaucoup dans la JVM.

La plupart des sources des bibliothèques sont livrées avec le JDK dans le fichier src.Zip. Votre IDE l'utilisera automatiquement. Mieux vaut connaître les classes de ces bibliothèques que de jouer avec le JDK lui-même.

0
Peter Lawrey