# Autres langages > Python > GUI >  ouvrir un fichier d'extension *.pyw avec java

## kinfo

je veux juste ouvrir un fichier d'extension *.pyw avec java


je sais que java offre une fonction pour ouvrir des fichiers exe (sous windows ) de la forme

cmd="c:\\windows\\notepad.exe";


try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd);System.out.println("er");
p.waitFor();//si l'application doit attendre a ce que ce process fini
}catch(Exception e) {
System.out.println("erreur d'execution " + cmd + e.toString());
}

-------------
je veux ouvrir ce fichier
cmd ="C:\\Program Files\\***\\toplevel.pyw";

et je pense que a demande des connaissances en python 
quelle commande ou tapes  suivre

merci d'avance

----------


## Antoine_935

Salut

Par "ouvrir", peut-tre entends-tu "excuter" ?
Il s'agit de la mme manipulation que pour un _.exe_ normal.
Il faut juste que le windows sur lequel ton application tourne ait associ l'extension .pyw  Python.


Bonne chance

----------


## kinfo

merci,  oui je veux l'excuter ce *.pyw depuis java

tu peux m'expliquer comment associer l'extension .pyw  windows

----------


## dahtah

Salut,
Tu lances juste ton fichier avec la console python. Le mieux, c'est de changer le rpertoire de travail, de sorte  ce que ton script python ai accs  ses ventuelles ressources.


```

```

En java, utilises plutt exec(String[] cmd) que exec(String cmd). Le second gre parfois mal les arguments.
Ne gre pas tes exceptions avec un catch global, mais soit plus prcis.
Bon courage...

----------


## kinfo

merci, 
voici le code:
String[] cmd = {"C:\\Python23\\python.exe"}; // et non pas pythonw.exe
*cmd[1] = "C:\\Program Files\\Z-EVES 2.3.1\\gui\\toplevel.pyw";*
File workingDir = new File("C:\\Program Files\\Z-EVES 2.3.1\\gui");

try 
{
    Runtime r = Runtime.getRuntime();
    Process p = r.exec(cmd, null, workingDir);
}catch(Exception e) {
    System.out.println("erreur d'execution " + cmd + e.toString());
}




une erreur est gnr  la ligne en gras:

java.lang.ArrayIndexOutOfBoundsException

----------


## Antoine_935

Tu as allou de la mmoire pour un tableau d'une entre.
Si tu essayes d'accder  l'lment 1 (soit le deuxime donc), c'est hors des limites du tableau. C'est ce que le message te dit: "Out of bounds".

Je te conseile vivement d'aller lire les bons tutoriels disponibles sur Java sur ce mme site  ::): 
Nous ne sommes pas vraiment (voire pas du tout) dans la section Java, mais voici la solution, rapidos:


```

```

----------


## kinfo

merci encore antoine

----------

