2017-01-08 1 views
4

J'ai eu une nouvelle installation et avant d'installer Java était capable d'exécuter NetBeans et OpenOffice. Si ces programmes ont été écrits en Java, comment cela est-il possible? Je sais qu'il existe quelques convertisseurs .class à .exe mais je pensais que ce sont des hacks (ne convient pas aux grandes applications déployées dans le monde entier). Quelle est l'approche commune pour déployer une application en Java sans JRE? Existe-t-il un standard, ou le moyen le plus commun? Au début, je pensais que cela avait à voir avec les fichiers Jar, mais d'après ce que j'ai besoin, une installation Java existante doit être exécutée.Comment les programmes écrits en Java ne nécessitent-ils pas le JRE?

+0

Duplicata http://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file –

+1

afaik OpenOffice est écrit en C++ – trooper

+0

Vous avez déjà installé Java si Netbeans a fonctionné. – EJP

Répondre

2

Toutes les applications Java s'exécutent au-dessus d'un JRE. Même NetBeans et OpenOffice.

La plupart des applications Java déployables sont accompagnées d'un JRE. Pour que vous puissiez voir qu'il n'y a pas d'environnement d'exécution Java, mais qu'il y en a un en même temps, l'application fonctionnera au-dessus.

+0

Ok, donc vous dites essentiellement qu'une application peut venir avec son propre JRE? Parce qu'il n'y en avait certainement pas un (installé) sur l'ordinateur lorsque l'application était en cours d'exécution. – Celeritas

+0

Oui par exemple Netbeans avec JDK/JRE vous pouvez suivre ce http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html – shazin

+0

@Celeritas regardez launch4j et d'autres comme ça , il peut regrouper des jars & jre pour en faire un .exe (pour windows au moins) par exemple – NeeL

0

Vous pouvez exécuter un programme de deux manières différentes: soit vous le compilez en code machine, soit vous utilisez un interpréteur. Le JRE interprète le bytecode Java (et fait beaucoup plus de choses, bien sûr). Il existe des compilateurs qui génèrent des exécutables natifs à partir de code source ou octet Java. Le seul que je connaisse est gcj, et la dernière fois que j'ai vérifié, c'était seulement pour Java 5 et ça ne semblait pas très fiable.

La plupart des applications Java nécessitent un JRE ou en ont un inclus dans la distribution. Par exemple, vous pouvez obtenir Oracle SQL Developer avec ou sans JRE inclus. A propos de Netbeans, il existe des distributions nécessitant un JDK (un JRE ne suffit pas, car il a besoin du compilateur et des outils de développement), et aussi du JDK avec des bundles Netbeans. Il existe trois façons de démarrer une application Java (sans compter Java Web Start et autres): vous exécutez la commande java manuellement, vous utilisez un script qui le fait ou vous exécutez un exécutable appelé "wrapper".

Il existe plusieurs enveloppes que vous pouvez personnaliser pour n'importe quelle application. Le lien par PJ Fanning inclut une liste, si elle n'est pas erronée. Les wrappers utilisent un JRE pour exécuter l'application et faciliter le démarrage des applications Java en tant que services au démarrage du système. Donc, à moins de trouver une application qui a été compilée en code natif (et, idéalement, vous ne pourriez pas dire qu'il s'agissait d'une application Java), vous utilisez toujours un environnement JRE, qu'il soit préinstallé ou non. groupé un.