Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Invoquer un exécutable

4 réponses
Avatar
Charly
Bonjour,

quelqu'un pourrait-il me dire comment invoquer un fichier exécutable (.exe
ou .bin) en java ?

J'aimerai réaliser cela à partir d'un click d'un bouton.

Merci encore.


Charly

4 réponses

Avatar
Jean
Bonjour,

quelqu'un pourrait-il me dire comment invoquer un fichier exécutable (.exe
ou .bin) en java ?

J'aimerai réaliser cela à partir d'un click d'un bouton.

Merci encore.


Charly


Bonjour


Voici un bout de code:
/*****/
Runtime r = Runtime.getRuntime();
String program = "./myAPP";

try {
Process p = r.exec( program );
p.waitFor();
System.out.println( p.exitValue() );
}
catch (IOException e)
{
e.printStackTrace();
}
catch (InterruptedException e)
{
e.printStackTrace();
}

/****/

J'avais pleuré recemment sur un bug de cet appel sous certains unix.
http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_idP89167

Pas de contournement connu.


bonne journée.
--

- Jean -
(jiheshem chez yahoo en france)

Avatar
TestMan
Bonjour,

quelqu'un pourrait-il me dire comment invoquer un fichier exécutable
(.exe ou .bin) en java ?

J'aimerai réaliser cela à partir d'un click d'un bouton.

Merci encore.


Charly

Bonjour


Voici un bout de code:
/*****/
Runtime r = Runtime.getRuntime();
String program = "./myAPP";

try {
Process p = r.exec( program );
p.waitFor();
System.out.println( p.exitValue() );
}
catch (IOException e)
{
e.printStackTrace();
}
catch (InterruptedException e)
{
e.printStackTrace();
}

/****/

J'avais pleuré recemment sur un bug de cet appel sous certains unix.
http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_idP89167

Pas de contournement connu.


Bonsoir,

Selon le site, le bug dont vous parlez est noté fermé car identique au
http://bugs.sun.com/bugdatabase/view_bug.do?
Qui lui même a été fixé dans le JDK6 comme l'atteste la liste :
https://jdk6.dev.java.net/JDK6CommittedBugs.html

A+
TM


Avatar
Charly
"TestMan" wrote in message
news:4564bbce$0$11676$
Bonjour,

quelqu'un pourrait-il me dire comment invoquer un fichier exécutable
(.exe ou .bin) en java ?

J'aimerai réaliser cela à partir d'un click d'un bouton.

Merci encore.


Charly

Bonjour


Voici un bout de code:
/*****/
Runtime r = Runtime.getRuntime();
String program = "./myAPP";

try {
Process p = r.exec( program );
p.waitFor();
System.out.println( p.exitValue() );
}
catch (IOException e)
{
e.printStackTrace();
}
catch (InterruptedException e)
{
e.printStackTrace();
}

/****/

J'avais pleuré recemment sur un bug de cet appel sous certains unix.
http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_idP89167

Pas de contournement connu.


Bonsoir,

Selon le site, le bug dont vous parlez est noté fermé car identique au
http://bugs.sun.com/bugdatabase/view_bug.do?
Qui lui même a été fixé dans le JDK6 comme l'atteste la liste :
https://jdk6.dev.java.net/JDK6CommittedBugs.html

A+
TM


Soumis au 16 Mai 1997 ???

------------------------------------------------------------------------------------------------------------
On Solaris, <code>Runtime.exec()</code> fails if the primary group id of the
Java process doing the exec, and the group id of the executable being
exec'ed,
are not the same. Workaround is to rely only on primary group id based
permissions, and refrain from depending on secondary group ids based
permissions for executables that are being exec'ed with
<code>Runtime.exec()</code>.User gets IOException when attempting to invoke
a shell script from
Java. User can invoke the shell script from the Unix command prompt.


Believed cause:

User's primary group is not the same as the group of the shell script,
even though user is a member of that group.


Further info:

This problem occurs on Solaris 2.5.1 sparc and x86 hardware.
------------------------------------------------------------------------------------------------------------

Incroyable. Ils font état de ce bug (fixé) avec Mustang. Faut donc passer à
Mustang pour ne pas se retrouver avec un plantage ?

Je n'ai pas saisi leur bugtrack, ils ont "contourné le problème" ou alors je
n'ai rien compris ?

Il n'y a pas une solution plus élégante que de lancer un Process ?
En tout cas merci Jean et TestMan de votre aide, je vais essayer de voir ce
que me sort l'exception (StackTrace).

Charly



Avatar
TestMan
"TestMan" wrote in message
news:4564bbce$0$11676$
Bonjour,

quelqu'un pourrait-il me dire comment invoquer un fichier exécutable
(.exe ou .bin) en java ?

J'aimerai réaliser cela à partir d'un click d'un bouton.

Merci encore.


Charly

Bonjour


Voici un bout de code:
/*****/
Runtime r = Runtime.getRuntime();
String program = "./myAPP";

try {
Process p = r.exec( program );
p.waitFor();
System.out.println( p.exitValue() );
}
catch (IOException e)
{
e.printStackTrace();
}
catch (InterruptedException e)
{
e.printStackTrace();
}

/****/

J'avais pleuré recemment sur un bug de cet appel sous certains unix.
http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_idP89167

Pas de contournement connu.
Bonsoir,


Selon le site, le bug dont vous parlez est noté fermé car identique au
http://bugs.sun.com/bugdatabase/view_bug.do?
Qui lui même a été fixé dans le JDK6 comme l'atteste la liste :
https://jdk6.dev.java.net/JDK6CommittedBugs.html

A+
TM




Bonjour,

Soumis au 16 Mai 1997 ???


Oui, et yen a d'autre dans ce cas, parcours le bugparade :(

C'est la raison pour laquelle je suis persuadé que la sortie sous GPL
était indispensable. Maintenant, il va faloir que l'équipe de validation
des patches de OpenJDK tienne la charge qu'ils risque de se recevoir ...
Si ce n'est pas le cas, les contributeurs iront patcher ailleur ;-)

<...>

Incroyable. Ils font état de ce bug (fixé) avec Mustang. Faut donc passer à
Mustang pour ne pas se retrouver avec un plantage ?


Bon, ce n'est pas non plus un bug méga répandu (tout est relatif), faut
être sous unix et avoir un cas super précis d'appel à réalisé (execution
d'un binaire gràce au droits de groupes). Et enfin, le contournement est
assez simple et même fournit dans le bug (mais pas au bon endroit, un
goret à encore frappé).

La phrase est d'ailleur hilarante :
« I don't have any workaround to provide. The only solution
is » (Je n'ai pas de contournement. La seule solution est ...)

Où comment s'auto-contredire dans la même ligne :o)

Je n'ai pas saisi leur bugtrack, ils ont "contourné le problème" ou alors je
n'ai rien compris ?


Contournable depuis longtemps et corrigé trop (vraiment trop) tardivement.

Il n'y a pas une solution plus élégante que de lancer un Process ?


Runtime.getRuntime().exec("/bin/sh");

Je ne voit pas ce qu'on peut faire de plus simple (singleton + 1
méthode). Le reste du code de Jean est pour bloquer le thread courant du
processus parent et attendre la fin du processus fils puis récupérer le
code de retour. L'objet Process te permet aussi de communiquer avec le
processus via les flux standards ...

En tout cas merci Jean et TestMan de votre aide, je vais essayer de voir ce
que me sort l'exception (StackTrace).


Si tu ne trouves pas, poste ici : code d'exemple le plus concis possible
et la trace complète obtenue ... Tu devrais trouver des âmes charitables ;)

A+
TM