Bonjour tout le monde.
Je cherche a éxécuter une application Java depuis une autre application Java.
J'ai donc mis en place tout le tuttim, depuis le bouton (qui est sensé lancer l'application tierce) jusqu'à son listener qui utilise la commande )]Runtime.exec(String[])
Je passe à mon application plusieurs paramètres dont un flux XML (sous forme de String).
Tout marche bien, SAUF si je mets des valeurs d'attributs (sous forme de String) trop grande dans mes balises XML.
En gros, j'ai une balise <attribute name="Comment" value="mon commentaire"/> qui se répète moult fois ans mon flux XML, et je n'ai pas le droit de mettre une chaine de plus de 16 caractères à la place de "mon commentaire", sans quoi je lève l'exception suivante :
et voici le code qui m'a servi pour faire ceciEnvoyé par Exception levée
Donc pour résumer, si jamais dans mon String "param", l'attribut dont le nom est Comment a une valeur de plus de 16 carctère, ça plante, sinon ça marche, et je ne sais pas pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 String param = XmlDocument.getXmlStreamForMySoft().replaceAll("\"", "\\\\\"").replaceAll(" "," "); param=param.substring(param.indexOf("<tree>")); String[] cmd={"java","-jar","MySoft4.jar", "-s", "Logiciel", "-x", param}; try{ Runtime r = Runtime.getRuntime(); r.traceInstructions(true); r.traceMethodCalls(true); final Process proc = r.exec(cmd); ((JFrame)mainFrame).dispose(); }catch (IOException e1){ System.out.println("Unable to launch MySoft4 : IOError"); e1.printStackTrace(); }catch (SecurityException e1){ System.out.println("Unable to launch MySoft4 : Security Exception"); e1.printStackTrace(); }catch (NullPointerException e1){ System.out.println("Unable to launch MySoft4 : Null pointer"); e1.printStackTrace(); }catch (IllegalArgumentException e1){ System.out.println("Unable to launch MySoft4 : Illegal argument"); e1.printStackTrace(); }
Y a t'il quelque chose à faire du côté du deuxième paramètre String[] envp, car je ne vois pas du tout ce que je pourrais mettre dedans...
Partager