Partage
  • Partager sur Facebook
  • Partager sur Twitter

En quoi est écrit le coeur du Java ?

+ accord du JRE sous Windows par Microsoft

    15 mars 2012 à 16:18:10

    Bonjour,

    Les mot-clés ne sont pas évident pour effectuer ce type de recherche sur Google, je viens donc ici vous poser quelques questions sur Java, si vous me le permettez.

    En quoi est écrit le coeur du Java ?
    Par exemple le PHP est écrit en C, et le C en langage assembleur si je ne dis pas de bêtise (pour le C)...

    Ma deuxième question est, il est possible de faire plein de trucs sous Windows avec Java, créer des fenêtre avec Swing par exemple, Java doit surement utiliser des fichiers systèmes de Windows pour cela...
    Est-ce qu'Oracle paye une licence à Microsoft pour cela ?


    Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
    Site : https://gokan-ekinci.appspot.com | Miagiste en recherche d'emploi | Profil [Dév. Java SE & EE | Dév. QlikView]
    Anonyme
      15 mars 2012 à 17:03:22

      il y a plusieurs implémentations de java, elles ne sont pas forcément toutes écrite dans les mêmes langages.

      Personne ne doit payer de royalties a ms pour créer des programmes sous windows.
      • Partager sur Facebook
      • Partager sur Twitter
        15 mars 2012 à 19:03:56

        La JVM est écrite en C.
        Les APIs Java en Java et les méthodes "native" en C/C++
        • Partager sur Facebook
        • Partager sur Twitter
        www.creationjeuxjava.fr - Unity3D - LibGDX - Tutoriels de Jeux vidéo !
          16 mars 2012 à 0:47:27

          Ce sont des questions intéressantes, que tout développeur java devrait se poser tôt ou tard lors de l'apprentissage du langage.

          un programme java est executé dans une Java Virtual Machine. Cette machine virtuelle est une machine à pile qui exécute le bytecode java obtenu dans le fichier .class à partir du programme .java. Cette exécution se produit dans un espace mémoire obtenu par la JVM auprès du système d'exploitation sur lequel elle intervient, et doit se servir des routines d'affichage et d'entrées sorties de celui-ci. Une JVM est donc spécifique à un système d'exploitation donné. Ces notions impliquent l'utilisation de langage de bas niveaux pour la programmation d'une JVM (C, C++, assembleur).

          en exemple, un projet personnel d'implémentation de la jvm en C++ http://catpad.net/michael/jvm/

          et 3 liens intéressants :
          http://www.artima.com/insidejvm/ed2/jvm.html
          http://docs.oracle.com/javase/specs/jv [...] ml/index.html
          http://chable.developpez.com/tutoriel/java/binaire/

          En ce qui concerne windows, la création de fenêtre en Swing dans un programme java n'utilise évidemment pas les api windows, mais les routines d'affichage graphique du système d'exploitation à travers la JVM
          • Partager sur Facebook
          • Partager sur Twitter
            16 mars 2012 à 8:29:38

            Ce qui est intéressant en réalité, c'est le comportement de la JVM.
            Le langage dans lequel elle est écrite n'a strictement aucune importance tant qu'on ne veut pas modifier la JVM elle-même ou écrire des méthodes natives.
            • Partager sur Facebook
            • Partager sur Twitter
              16 mars 2012 à 10:00:09

              aucune importance ? Pour celui qui a demandé l'information un peu quand même...C'est par curiosité et c'est normal de se poser la question :)
              • Partager sur Facebook
              • Partager sur Twitter
              www.creationjeuxjava.fr - Unity3D - LibGDX - Tutoriels de Jeux vidéo !
                16 mars 2012 à 10:08:23

                Je ne dis pas le contraire. C'est normal de se poser la question, mais ça n'a aucune importance quand même. Ce n'est pas ça qui va modifier quoi que ce soit à ta manière de développer en Java.
                • Partager sur Facebook
                • Partager sur Twitter
                  16 mars 2012 à 10:08:52

                  j'entends bien,

                  d'ou le "par curiosité".
                  • Partager sur Facebook
                  • Partager sur Twitter
                  www.creationjeuxjava.fr - Unity3D - LibGDX - Tutoriels de Jeux vidéo !
                    16 mars 2012 à 10:35:20

                    Citation : hd29

                    Ces notions impliquent l'utilisation de langage de bas niveaux pour la programmation d'une JVM (C, C++, assembleur).



                    Il y a actuellement en développement des implémentations meta-circulaire de la JVM dont Maxine : ici
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 mars 2012 à 20:14:02

                      Citation : JohnCarmack

                      La JVM est écrite en C.
                      Les APIs Java en Java et les méthodes "native" en C/C++


                      D'accord donc la JVM en C.
                      La JRE en Java, et les méthodes natives en assembleur, C et C++.
                      Et le JDK, comme il contient une JRE, en Java/C/C++/assembleur.

                      Pourrais-je avoir des exemples des méthodes "natives" ?
                      J'ai à l'esprit que les méthodes aléatoires de la classe Random.



                      Citation : shakhal

                      Personne ne doit payer de royalties a ms pour créer des programmes sous windows.


                      Pourtant il faut payer pour créer des programmes sous Android, Iphone, Playstation, Xbox, Wii etc... :-°
                      La JVM est un programme comme un autre... et qui est installé sous Windows par défaut, il me semble qu'Oracle paye justement les constructeurs pour cela... mais je pensais qu'il payait aussi Microsoft.


                      Citation : hd29

                      En ce qui concerne windows, la création de fenêtre en Swing dans un programme java n'utilise évidemment pas les api windows, mais les routines d'affichage graphique du système d'exploitation à travers la JVM


                      D'accord, mais je pensais que "tout ça" était lié à Windows et ses fonctionnalités sous Windows.


                      Je ne connais pas Maxine, mais j'ai récemment lu une news qui a un rapport avec le compilateur dynamique Graal.


                      PS: C'est bien sur par curiosité que je me pose ces questions. :D
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Site : https://gokan-ekinci.appspot.com | Miagiste en recherche d'emploi | Profil [Dév. Java SE & EE | Dév. QlikView]
                      Anonyme
                        16 mars 2012 à 20:46:33

                        Citation : Gugelhupf

                        La JVM est un programme comme un autre... et qui est installé sous Windows par défaut, il me semble qu'Oracle paye justement les constructeurs pour cela... mais je pensais qu'il payait aussi Microsoft.



                        non java n'est pas installé sur windows par défaut (hélas)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 mars 2012 à 10:34:18

                          Toutes les méthodes faisant des appels systèmes (appels au système de fichier, à la carte réseau...) passent par des méthodes natives. Il y a aussi des méthodes qui ont besoin de performance, je pense à la librairie openCV en java qui fait des gros calculs pour appliquer des filtres à des images.

                          Je pense que n'importe qui peut écrire du code natif à l'aide de JNI mais ne l'ayant jamais fait je sais pas trop.

                          Hedi
                          • Partager sur Facebook
                          • Partager sur Twitter

                          En quoi est écrit le coeur du Java ?

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown