J'ai essayé ce que tu me montres pour voir le flux de sortie, en faisant :
Process p = new ProcessBuilder().inheritIO().command("open", "-g", "-a", "soffice", "--args", "-headless", "-accept=\"socket,port=8100;urp;\"").start();
--> pas d'autre sortie visible que la même exception dans la fenêtre "Output" de NetBeans.
Et si je fais, en ayant créé la classe "StreamGobbler" :
1 2 3 4 5 6 7 8 9 10
|
ProcessBuilder p = new ProcessBuilder("open", "-g", "-a", "soffice", "--args", "-headless", "-accept=\"socket,port=8100;urp;\"");
p.start();
StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), System.err);
StreamGobbler outputGobbler = new StreamGobbler(p.getInputStream(), System.out);
outputGobbler.start();
errorGobbler.start(); |
--> NetBeans souligne en rouge les méthodes "getErrorStream()" avec le message "cannot find symbol". J'ai vu que ce sont par contre des méthodes de la classe "Process" et non de la classe "ProcessBuilder". Je remplace donc la ligne :
ProcessBuilder p = new ProcessBuilder("open", "-g", "-a", "soffice", "--args", "-headless", "-accept=\"socket,port=8100;urp;\"");
par la ligne :
1 2
| Process p = Runtime.getRuntime().exec(new String[]{"open", "-g", "-a", "soffice", "--args",
"-headless", "-accept=\"socket,port=8100;urp;\""}); |
et j'enlève la ligne "p.start();" sinon il marque aussi "cannot find symbol" sur cette ligne. Par contre, il souligne en rouge "StreamGobbler" en signalant que l'accès est privé. Logique, je vois que tu as mis le constructeur privé. C'est une erreur ? Sinon, je ne savais pas qu'on pouvait définir un constructeur privé. Pour que ça compile correctement, j'ai donc mis le constructeur public.
J'exécute mais ça ne met pas plus de flux de sortie.
Sinon, je viens de penser à l'application "Console" sur Mac. Est-ce que ça n'afficherait pas ce dont tu indiques par flux de sortie standard ou log pour afficher les traces ? Voici les messages de cette console :
"soffice:
WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.2 instead of 10.10.2. Use NSProcessInfos's operatingSystemVersion property to get correct system version number.
Call location:"
Et 7 autres tâches "soffice" ci-dessous, numérotées de 0 à 6.
"0 CarbonCore - 0x"[...]"Gestalt_SystemVersion_block_invoke"[...]
"1 libdispatch.dylib - 0x"[...]"_dispatch_client_callout"[...]
"2 libdispatch.dylib - 0x"[...]"dispatch_once_f"[...]
"3 CarbonCore - 0x"[...]"_Gestalt_SystemVersion"[...]
"4 CarbonCore - 0x"[...]"Gestalt"[...]
"5 libvcl.dylib - 0x"[...]"initNSAppv"[...]
"6 libvcl.dylib - 0x"[...]"ImplSMainHookPh"[...]
A noter que je suis sur la version Yosemite de Mac qui est la 10.10.2. La version antérieure, Mavericks est la 10.9. Je ne sais pas si ça a un rapport.
Partager