Executable

Executable - Java - Programmation

Marsh Posté le 16-07-2007 à 10:43:43    

Bonjour,
 
J ai une application java, et mmnt je veux qu elle fonctionne sur n importe quel PC meme si y a pas la machine virtuelle
Autrement dit comment je peut extraire l'executable pour ensuite utiliser  installschield pour la rendre installable .
Merci d' avance.

Reply

Marsh Posté le 16-07-2007 à 10:43:43   

Reply

Marsh Posté le 16-07-2007 à 12:29:34    

[:prozac]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 12:42:20    

stanfordias a écrit :

Bonjour,
 
J ai une application java, et mmnt je veux qu elle fonctionne sur n importe quel PC meme si y a pas la machine virtuelle
Autrement dit comment je peut extraire l'executable pour ensuite utiliser  installschield pour la rendre installable .
Merci d' avance.


 
http://img243.imageshack.us/img243/7772/failgn5.jpg
 

Reply

Marsh Posté le 16-07-2007 à 13:52:15    

Salut,
je voudrai une doc clair en français de preference
 
j ai entendu dire que ça se faisait sur l invite de commande  
mais je ne sais pas comment  
 
Je le repet emon but est d extraire l executable
 
Merci

Reply

Marsh Posté le 16-07-2007 à 13:55:10    

stanfordias a écrit :

Je le repet emon but est d extraire l executable


 
Salut,
 
je pense que tu n'as rien bitté à Java, et qu'il serait grand temps que tu t'y mettes.
 
Merci.

Reply

Marsh Posté le 16-07-2007 à 14:08:21    

install anywhere avec la JVM bundlée avec? [:boidleau]

Reply

Marsh Posté le 16-07-2007 à 14:29:30    

Chaos Intestinal a écrit :


 
Salut,
 
je pense que tu n'as rien bitté à Java, et qu'il serait grand temps que tu t'y mettes.
 
Merci.


Je pense que tu ne devrais même pas le penser mais l'affirmer  :sweat:

Reply

Marsh Posté le 16-07-2007 à 15:35:50    

Soit il s'arrete au JDK 1.2 et fait du Visual J++ (introuvable) mais a un EXE Win32.
Soit il s'arrete au JDK 1.3 et fiat du Visual J# mais a un EXE .NET 2.0.
Soit il achete un compilo supair cher qui compile du JDK 1.5 (et ptet 1.6 maintenant) en EXE Win32, car ça existe.
 
Vous me paraissée un peu trop peteux là. :p


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 16-07-2007 à 15:40:04    

[:pingouino]
Sais-tu seulement ce que fait "le compilo super cher" ? [:petrus75]
Dans le même ordre d'idées, sais-tu aussi pourquoi il peut avoir un exe win32 avec du Java 1.2 ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 15:41:45    

Taiche a écrit :

[:pingouino]
Sais-tu seulement ce que fait "le compilo super cher" ? [:petrus75]


De la magie, comme Gérard Majax :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-07-2007 à 15:41:45   

Reply

Marsh Posté le 16-07-2007 à 15:41:59    

yeah :o

Reply

Marsh Posté le 16-07-2007 à 15:42:04    

Bah parce que c'est compilé en Win32 et pas en Bytecode. :o
Et alors ? Il peut le faire et c'est ce qu'il veut, je ne vois pas le problème.
 
Après il c'est peut-être mal exprimé ou a mal compris la philosophie du Java. Mais s'il veut coder en Java et a un besoin ponctuel de distribuer son programme compilé de manière native pour Win32, c'est possible.

Message cité 1 fois
Message édité par MEI le 16-07-2007 à 15:43:01

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 16-07-2007 à 15:42:45    

[:rofl2]

Reply

Marsh Posté le 16-07-2007 à 15:45:42    

MEI a écrit :

Bah parce que c'est compilé en Win32 et pas en Bytecode. :o


Ah ouais, OK [:petrus75] le tout c'est d'y croire :D

MEI a écrit :


Et alors ? Il peut le faire et c'est ce qu'il veut, je ne vois pas le problème.
 
Après il c'est peut-être mal exprimé ou a mal compris la philosophie du Java. Mais s'il veut coder en Java et a un besoin ponctuel de distribuer son programme compilé de manière native pour Win32, c'est possible.


Personne n'a jamais dit que c'était pas possible [:spamafote] C'est surtout une très mauvaise façon de faire, qui va lui générer un exécutable de 2 Mo pour un Hello World et qui au final va revenir à installer une simili-JVM chez le client (et éventuellement à pourrir le PC du client).


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 15:48:05    

Je vous garantie que le Visual J++ fait du code Win32.
 
Apres pour les autres truc je suis quasi sur que c'est idem. Je parle pas des Java2EXE mais bel et bien de compilateur qui fond tu code natif : http://schmidt.devlib.org/java/native-compilers.html
 
Enfin bref.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 16-07-2007 à 15:52:30    

MEI a écrit :

Je vous garantie que le Visual J++ fait du code Win32.


C'est "normal" et ça ne supporte que le 1.2 car les DLLs qui savent interpréter tout ça sont livrées de base dans XP (dépendance sur msjava.dll).


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 15:54:56    

Normal qu'une DLL existe qui connaisse les bibliothèques de Java existe. Mais ça reste du code Win32 natif.
 
Y'as pareil pour VB, ou même la STL Visual C++ avec les DLL MSVB et MSVCRT... Mais c'est juste pour éviter d'inclure dans tout les EXE le code des bibliotheque de base. C'est un peu le principe de la compilation et des bibliothèques d'éviter la redondance.

Message cité 1 fois
Message édité par MEI le 16-07-2007 à 15:55:11

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 16-07-2007 à 16:01:07    

MEI a écrit :

Normal qu'une DLL existe qui connaisse les bibliothèques de Java existe. Mais ça reste du code Win32 natif.
 
Y'as pareil pour VB, ou même la STL Visual C++ avec les DLL MSVB et MSVCRT... Mais c'est juste pour éviter d'inclure dans tout les EXE le code des bibliotheque de base. C'est un peu le principe de la compilation et des bibliothèques d'éviter la redondance.


Merci de m'expliquer le principe des DLLs :D
Ce que je voulais dire, c'est que Visual J++ génère du code qui tire sur une DLL qui est la JVM de Microsoft (enfin était, car MS a arrêté de la supporter en... 1.2, tiens donc) et que, bizarrement, c'est le seul outil qui fasse ça [:figti] La compil n'est pas complète et le code généré n'est pas du Win32 pur ; on en a l'illusion car on récupère un exe au final qui marche sur tous les Windows XP mais ça n'est pas le cas.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 16:06:15    

Taiche a écrit :


Merci de m'expliquer le principe des DLLs :D
Ce que je voulais dire, c'est que Visual J++ génère du code qui tire sur une DLL qui est la JVM de Microsoft (enfin était, car MS a arrêté de la supporter en... 1.2, tiens donc) et que, bizarrement, c'est le seul outil qui fasse ça [:figti]


Nah, en théorie il y a e.g. gcj qui est censé pouvoir générer du code natif.

 

Il n'y a après tout pas grand chose qui s'oppose au fait de compiler du java en code natif, il faut simplement embarquer une partie du runtime (comme ce que font les compilos Haskell, même si il faut embarquer bien plus de trucs pour Java dans la mesure où on se bouffe les problèmes de réflexion toussa, au final ça doit rester plus simple qu'un compilo Common Lisp et il en existe e.g. CMUCL, AllegroCL ou SBCL ;)).

Message cité 1 fois
Message édité par masklinn le 16-07-2007 à 16:08:24

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-07-2007 à 16:12:47    

masklinn a écrit :


Nah, en théorie il y a e.g. gcj qui est censé pouvoir générer du code natif.


Non, ce que je voulais dire c'est que y a que VJ++ 6 qui compile du "natif" qui tire sur msjava.dll.

masklinn a écrit :


Il n'y a après tout pas grand chose qui s'oppose au fait de compiler du java en code natif, il faut simplement embarquer une partie du runtime (comme ce que font les compilos Haskell, même si il faut embarquer bien plus de trucs pour Java dans la mesure où on se bouffe les problèmes de réflexion toussa, au final ça doit rester plus simple qu'un compilo Common Lisp et il en existe ;)).


Je dis pas qu'il y a que des inconvénients (sinon ce genre de produit n'existerait pas) mais y a pas mal de problèmes qui vont faire que tel ou tel exe va se viander : instanciation dynamique (et, comme tu le dis, tout ce qui est lié à la réflexion), distribution du package (un exe/dll un peu poussé est pas forcément simple à installer, faut un installer), etc... et puis bon, même si c'est évident, on perd tout l'aspect portabilité.
A mon sens, il est plus judicieux de coder en C/C++ à moins vraiment qu'on ait un projet ultra-lourd à porter (mais dans ce genre de cas, c'est plutôt un souci de design à la base [:pingouino]).

Message cité 1 fois
Message édité par Taiche le 16-07-2007 à 16:13:05

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 16:13:30    

Taiche a écrit :


Merci de m'expliquer le principe des DLLs :D
Ce que je voulais dire, c'est que Visual J++ génère du code qui tire sur une DLL qui est la JVM de Microsoft (enfin était, car MS a arrêté de la supporter en... 1.2, tiens donc) et que, bizarrement, c'est le seul outil qui fasse ça [:figti] La compil n'est pas complète et le code généré n'est pas du Win32 pur ; on en a l'illusion car on récupère un exe au final qui marche sur tous les Windows XP mais ça n'est pas le cas.


Visual J++ etait peut etre pas le meilleur exemple, mais le Visual J# produit bien du CLR, mais s'il faut un runtime Visual J# car les Assembly emulant le JDK ne sont pas dans le .NET de base (j'ai jamais compris pourquoi).


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 16-07-2007 à 16:29:35    

MEI a écrit :


Visual J++ etait peut etre pas le meilleur exemple, mais le Visual J# produit bien du CLR, mais s'il faut un runtime Visual J# car les Assembly emulant le JDK ne sont pas dans le .NET de base (j'ai jamais compris pourquoi).


On avait un gars de Microsoft dans notre boîte y a quelques années qui nous expliquait que l'intérêt de J# était uniquement pour faire le pont entre du code Java et du code .Net. Là encore, la version de Java supportée est limitée (1.3, je crois qu'ils ont eu un outil beta qui faisait la 1.4) pour justement encourager les boîtes à faire le passage sur .Net. Donc en fait, ils font une conversion de Java à .Net mais sans passer par du code natif (youpi).
Ca s'utilise chez nous pour éviter de coder (et maintenir, surtout) le même truc dans 2 langages différents mais franchement, la limitation à Java 1.3 fait mal au cul [:pingouino] (pis comme tu le dis, il faut avoir .Net préinstallé sur la machine cliente pour l'utiliser... autant installer une JVM [:joce])


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 17:27:10    

Taiche a écrit :


Je dis pas qu'il y a que des inconvénients (sinon ce genre de produit n'existerait pas) mais y a pas mal de problèmes qui vont faire que tel ou tel exe va se viander : instanciation dynamique (et, comme tu le dis, tout ce qui est lié à la réflexion)


J'ai pas dit qu'il allait se viander (si on peut compiler du Common Lisp, ya pas de raison de pas pouvoir compiler du Java), j'ai dit que le boulot du compilo était plus tendu (ou que plus de runtime devait être inclus) que dans le cadre de la compilation d'un langage plus statique (genre OCaml), nuance.

Taiche a écrit :

faut un installer


Beuh, non :o

Taiche a écrit :

même si c'est évident, on perd tout l'aspect portabilité.


Oui et non, on perd en portabilité sur le binaire compilé final, mais rien n'empêche de distribuer les binaires et le source, ou un binaire pour chaque target, toussa.

Taiche a écrit :

A mon sens, il est plus judicieux de coder en C/C++ à moins vraiment qu'on ait un projet ultra-lourd à porter (mais dans ce genre de cas, c'est plutôt un souci de design à la base [:pingouino]).


le problème c'est que si Java c'est de la merde, C/C++ c'est de la diarhée :/

MEI a écrit :


Visual J++ etait peut etre pas le meilleur exemple, mais le Visual J# produit bien du CLR, mais s'il faut un runtime Visual J# car les Assembly emulant le JDK ne sont pas dans le .NET de base (j'ai jamais compris pourquoi).


Nan mais ça on s'en fout, le CLR c'est grosso merdo équivalent à la JVM (avec des nuances, mais faut pas abuser), donc un compilo Java -> CIL ça n'a rien d'impressionnant, et aucun rapport avec un compilo Java -> natif

Message cité 1 fois
Message édité par masklinn le 16-07-2007 à 17:28:02

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-07-2007 à 17:40:46    


Bin ça dépend vers quoi te fait tirer ton compilo natif (genre s'il a besoin d'une DLL à lui au runtime, bin va falloir la packager avec ton exe).

masklinn a écrit :


Oui et non, on perd en portabilité sur le binaire compilé final, mais rien n'empêche de distribuer les binaires et le source, ou un binaire pour chaque target, toussa.


Ouais enfin c'est quand même super loin de la portabilité de Java, qui était celle à laquelle je me référais.

masklinn a écrit :


le problème c'est que si Java c'est de la merde, C/C++ c'est de la diarhée :/


[:kiki] Tu vas pas nous rechier une pendule comme tu l'avais fait pour PHP, hein :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 16-07-2007 à 17:44:42    

Taiche a écrit :


[:kiki] Tu vas pas nous rechier une pendule comme tu l'avais fait pour PHP, hein :o


Effectivement, après un peu de PHP on a une coulante telle qu'on peut chier une horloge, ou même une armoire normande (en plus on a le cul bien fait, donc ça passe tout seul) :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-07-2007 à 21:18:52    

De deux choses l'une, ou tu fais dans la portable et tu utilise la machine virtuelle java, ou tu ne fais aps dans le portable te tu peux utiliser du code natif.
 
Il existe plusieurs solutions : un jar executable (avec manifeste donc).
Un jar executable, fournis avec des scripts de base (batch/bash) qui le lancent automatiquement.
Un faux executable natif (le compilo borland et celui du biliu savant faire ca) qui a besoin de la JVM.
Un vrai executable natif (gcj sait faire ca) mais compte minimum 50Mo pour une application de base.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed