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 ?
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 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
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.
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.
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.
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)
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
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.