7
votes

Possible d'exécuter un fichier JAR sur n'importe quel système d'exploitation?

est-il possible d'exécuter un fichier JAR sur n'importe quel système d'exploitation (comme Windows, Linux, Mac OS X)? Je souhaite créer une application simple que je souhaite exécuter sur Linux, Windows et Mac OS X. Si le fichier JAR pourrait être exécuté sur n'importe quel système d'exploitation avec Java installé?


0 commentaires

5 Réponses :


14
votes

Les fichiers JAR fonctionnent sur n'importe quel système d'exploitation pour lequel une JVM existe.


1 commentaires

Eh bien, sur n'importe quel O / S pour lequel la version requise de la JVM est installée; Si vous utilisez Java 6 APIS, Java 5 JVM n'est-il pas bon.



12
votes

Oui, tant que vous n'utilisez aucune bibliothèque indigène (JNI), c'est ainsi que Java fonctionne. C'est indépendant de la plate-forme.


2 commentaires

Et pas d'accès natif Java :-) et gardez à l'esprit que le séparateur de filepath est différent sur chaque plate-forme.


@Pindatjuh: JNA est une couche sur le JNI, de sorte que la limitation de soutien native est une donnée; Cependant, il dispose de la prise en charge de plusieurs O / S et, comme cela se produit, la JNA prend en charge spécifiquement les 3 mentions: JNA a été construite et testée sur OSX (PPC, X86, X86_64), Linux (X86, AMD64), FreeBSD / OpenBSD (X86, AMD64), Solaris (X86, AMD64, SPARC, SPARCV9) et Windows (X86, AMD64). Il a également été construit pour Windows / Mobile et Linux / PPC64, bien que ces plates-formes ne soient pas incluses dans la distribution.



5
votes

Les fichiers JAR sont conçus pour exécuter n'importe quel système d'exploitation qui possède une version JVM d'une version compatible installée. Certains fichiers JAR peuvent cependant être compilés à partir du code Java utilisé par le code spécifique au système d'exploitation (par exemple parler aux registres de Windows), alors le tester sur d'autres systèmes d'exploitation est sage.


1 commentaires

Deuxièmement, c'est le cas pour mon fichier JAR car il a été écrit pour traiter avec le registre Windows afin qu'il neivent aucun sens de l'exécuter sur un Mac OSX pour cette affaire.



6
votes

Comme autre dite, tant que vous avez installé Java et évitez d'utiliser du code natif, vous devriez être prêt à partir. Une chose à noter est que vous pouvez généralement exécuter un fichier JAR juste en double-cliquant dessus, et il s'ouvre comme une exécutable natif (sous Windows, c'est la manière dont il fonctionne par défaut, sur d'autres OSE, vous pouvez configurer ce comportement).

Ces fichiers de jar s'appellent des fichiers JAR exécutables. Si ce que vous voulez créer est un fichier jar exécutable, vous devez ajouter un fichier manifeste qui indique à la machine virtuelle Java (JVM) le nom de la classe principale. Les fichiers de jar exécutables peuvent également être exécutés sur la ligne de commande en faisant: xxx

si votre pot n'est pas un pot exécutable, puis d'exécuter votre programme, vous devez ajouter votre programme à votre parcours de classe, puis exécutez la classe principale. Pour ajouter un pot à la classe de classe: xxx


5 commentaires

Double-cliquant directement sur un pot de travail rarement, car cela signifie qu'aucun argument n'est envoyé à Main ou à la JVM.


@Skeptic: Définir "rarement". En pratique, j'utilise beaucoup de programmes Java, aucun d'entre eux n'exige d'arguments de ligne de commande.


@Lawrendeol, je viens de créer un fichier jar exécutable et sur la machine où j'écris en fait le code de son fonctionnement fonctionne parfaitement bien (j'ai travaillé sur une version Windows 8.1 Pro), mais lorsque j'ai essayé d'exécuter le fichier JAR à partir d'une machine professionnelle Windows 7, elle a donné Moi l'erreur JVM et je ne savais pas comment le réparer. Que suggérerais-tu?


@Sara: Impossible de dire sans voir votre ligne de commande et l'erreur; Vous pouvez ouvrir une question et mettre le lien dans un commentaire ici pour que je puisse le trouver. Mais ma meilleure hypothèse est que la machine Windows 7 ne trouve pas l'exécutable JVM et que votre ligne de commande est incorrecte sur cette machine. J'installe toujours mon JVM à un emplacement fixe et utilise le chemin explicite, par exemple. C: \ Fichiers du programme (x86) \ Javare \ bin \ java -jar xxx.jar


@Lawrendeol Stackoverflow. com / questions / 26352227 / ...



0
votes

Oui, il peut aussi longtemps que ce n'est pas ruiner à partir du terminal ou de l'invite de commande (comme java -jar nom.jar .) Il devrait fonctionner juste bien.


0 commentaires