From: minkee.lee Date: Thu, 9 Nov 2017 11:19:26 +0000 (+0900) Subject: skin: support java 9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4fd5d0d911975abf35800e5efabd860bad67daa3;p=sdk%2Femulator%2Fqemu.git skin: support java 9 1. (W/A) In java 9, jre option (--add-modules) is needed to use JAXB APIs. 2. find a java path using "java.home" Change-Id: Ie14b0b737746178e18e12c097ace652ec3e54b9e Signed-off-by: minkee.lee (cherry picked from commit a2ca6dc0f7c3b0616b07cc7324ef727ae67551ee) --- diff --git a/tizen/src/emulator_common.h b/tizen/src/emulator_common.h index d6c243c831..99969c9211 100644 --- a/tizen/src/emulator_common.h +++ b/tizen/src/emulator_common.h @@ -62,11 +62,15 @@ #define JAR_SKINFILE "emulator-skin.jar" #define JAVA_LIBRARY_PATH "-Djava.library.path" +/* (W/A) for java 9, + * '--add-modules' should be added for JAXB. + * '-XX:+IgnoreUnrecognizedVMOptions' is for jre under version 9 + */ #ifdef CONFIG_DARWIN /* Must start the Java window on the first thread on Mac */ -#define JAVA_EXEOPTION "-XstartOnFirstThread -jar" +#define JAVA_EXEOPTION "--add-modules=java.xml.bind -XX:+IgnoreUnrecognizedVMOptions -XstartOnFirstThread -jar" #else -#define JAVA_EXEOPTION "-jar" +#define JAVA_EXEOPTION "--add-modules=java.xml.bind -XX:+IgnoreUnrecognizedVMOptions -jar" #endif #define JAVA_SIMPLEMODE_OPTION "simple.msg" diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index 5451389a31..30ce986baa 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -1945,40 +1945,27 @@ public class EmulatorSkin { ProcessBuilder procEcp = new ProcessBuilder(); procEcp.redirectErrorStream(true); // FIXME: appropriate running binary setting is necessary. + String javaPath = System.getProperty("java.home"); + List command = new ArrayList(); if (SwtUtil.isWindowsPlatform()) { - if (proxyAddr != null && proxyPort != null) { - procEcp.command("java.exe", "-Dhttp.proxyHost=" - + proxyAddr, "-Dhttp.proxyPort=" + proxyPort, - "-jar", ecpPath, "vmname=" + emulName, - "base.port=" + basePort); - } else { - procEcp.command("java.exe", "-jar", ecpPath, "vmname=" - + emulName, "base.port=" + basePort); - } - } else if (SwtUtil.isMacPlatform()) { - if (proxyAddr != null && proxyPort != null) { - procEcp.command("java", - "-Dhttp.proxyHost=" + proxyAddr, - "-Dhttp.proxyPort=" + proxyPort, "-jar", - "-XstartOnFirstThread", ecpPath, "vmname=" - + emulName, "base.port=" + basePort); - } else { - procEcp.command("java", "-jar", "-XstartOnFirstThread", - ecpPath, "vmname=" + emulName, "base.port=" - + basePort); - } - } else { /* Linux */ - if (proxyAddr != null && proxyPort != null) { - procEcp.command("java", - "-Dhttp.proxyHost=" + proxyAddr, - "-Dhttp.proxyPort=" + proxyPort, "-jar", - ecpPath, "vmname=" + emulName, "base.port=" - + basePort); - } else { - procEcp.command("java", "-jar", ecpPath, "vmname=" - + emulName, "base.port=" + basePort); - } + command.add(javaPath + "\\bin\\java.exe"); + } else { + command.add(javaPath + "/bin/java"); + } + command.add("--add-modules=java.xml.bind"); + command.add("-XX:+IgnoreUnrecognizedVMOptions"); + if (proxyAddr != null && proxyPort != null) { + command.add("-Dhttp.proxyHost=" + proxyAddr); + command.add("-Dhttp.proxyPort=" + proxyPort); + } + command.add("-jar"); + if (SwtUtil.isMacPlatform()) { + command.add("-XstartOnFirstThread"); } + command.add(ecpPath); + command.add("vmname=" + emulName); + command.add("base.port=" + basePort); + procEcp.command(command); logger.info(procEcp.command().toString());