From 94d9b7c99f5cc4903bb6a03b3b437b4efba320ee Mon Sep 17 00:00:00 2001 From: Michael Leuschel <leuschel@cs.uni-duesseldorf.de> Date: Tue, 26 Nov 2019 14:15:58 +0100 Subject: [PATCH] get java -version info before launching ProB2UI --- .../de/prob/ui/eventb/OpenClassicHandler.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java b/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java index 865267e3..c5832a06 100644 --- a/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java +++ b/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java @@ -112,6 +112,18 @@ public class OpenClassicHandler extends AbstractHandler implements IHandler { // final String command = "java -jar " + probBinary + " --machine-file " + modelFile; //process = Runtime.getRuntime().exec(command); + // get some version info first: + final String[] vcommand = {"java", "-version"}; + ProcessBuilder vpb = new ProcessBuilder(vcommand).redirectErrorStream(true); + Process vprocess = vpb.start(); + final BufferedReader voutput = new BufferedReader( + new InputStreamReader(vprocess.getInputStream())); + new Thread(new ClassicConsole(voutput)).start(); + vprocess.waitFor(); // this blocks Rodin + if (vprocess.exitValue() != 0) { + Logger.notifyUserWithoutBugreport("Failed to start java -version. Exit code: " + vprocess.exitValue()); + } + final String[] command = {"java", "-jar", probBinary, "--machine-file", modelFile}; System.out.println("Launching ProB2UI using: java -jar " + probBinary); LimitedLogger.getLogger().log("Launching ProB2UI using: java -jar " + probBinary + " --machine-file " + modelFile,"ProB2UI",null); @@ -122,12 +134,8 @@ public class OpenClassicHandler extends AbstractHandler implements IHandler { new InputStreamReader(process.getInputStream())); new Thread(new ClassicConsole(output)).start(); -// process.waitFor(); // this blocks Rodin -// if (process.exitValue() != 0) { -// Logger.notifyUserWithoutBugreport("Failed to launch ProB2UI with java -jar" + probBinary + ". Exit code: " + process.exitValue()); -// } -// } catch (IOException | InterruptedException e) { - } catch (IOException e) { + } catch (IOException | InterruptedException e) { +// } catch (IOException e) { Logger.notifyUserWithoutBugreport("You need to specify a correct location for " + PROB2_NAME + ". See Preferences -> ProB Standalone.\n" + PROB2_NAME + " location: "+ probBinary + -- GitLab