From 2725ca8e9927fc3d0100b2cd83bf00b2863704c7 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 16 Jan 2013 13:22:49 +0100 Subject: [PATCH] @vm_params place when using force dynamic vm options fixed (IDEA-97769) --- .../openapi/projectRoots/JdkUtil.java | 72 +++++++++---------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java index 27e8049b3018..0ee3953e7cc2 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java @@ -167,43 +167,38 @@ public class JdkUtil { final Class commandLineWrapper; if ((commandLineWrapper = getCommandLineWrapperClass()) != null) { - - if (javaParameters.isDynamicVMOptions() && useDynamicVMOptions()) { + if (forceDynamicClasspath) { + File classpathFile = null; File vmParamsFile = null; - try { - vmParamsFile = FileUtil.createTempFile("vm_params", null); - final PrintWriter writer = new PrintWriter(vmParamsFile); - try { - for (String param : vmParametersList.getList()) { - if (param.startsWith("-D")) { - writer.println(param); + if (!vmParametersList.hasParameter("-classpath") && !vmParametersList.hasParameter("-cp")) { + if (javaParameters.isDynamicVMOptions() && useDynamicVMOptions()) { + try { + vmParamsFile = FileUtil.createTempFile("vm_params", null); + final PrintWriter writer = new PrintWriter(vmParamsFile); + try { + for (String param : vmParametersList.getList()) { + if (param.startsWith("-D")) { + writer.println(param); + } + } + } + finally { + writer.close(); + } + } + catch (IOException e) { + LOG.error(e); + } + final List list = vmParametersList.getList(); + for (String param : list) { + if (!param.trim().startsWith("-D")) { + commandLine.addParameter(param); } } } - finally { - writer.close(); + else { + commandLine.addParameters(vmParametersList.getList()); } - } - catch (IOException e) { - LOG.error(e); - } - final List list = vmParametersList.getList(); - for (String param : list) { - if (!param.trim().startsWith("-D")) { - commandLine.addParameter(param); - } - } - - commandLine.addParameter("@vm_params"); - commandLine.addParameter(vmParamsFile.getAbsolutePath()); - } - else { - commandLine.addParameters(vmParametersList.getList()); - } - - if (forceDynamicClasspath) { - File classpathFile = null; - if (!vmParametersList.hasParameter("-classpath") && !vmParametersList.hasParameter("-cp")) { try { classpathFile = FileUtil.createTempFile("classpath", null); final PrintWriter writer = new PrintWriter(classpathFile); @@ -240,9 +235,14 @@ public class JdkUtil { commandLine.addParameter(commandLineWrapper.getName()); commandLine.addParameter(classpathFile.getAbsolutePath()); } + + if (vmParamsFile != null) { + commandLine.addParameter("@vm_params"); + commandLine.addParameter(vmParamsFile.getAbsolutePath()); + } } else { - appendEncodingClasspath(javaParameters, commandLine, vmParametersList); + appendParamsEncodingClasspath(javaParameters, commandLine, vmParametersList); } } else { @@ -262,12 +262,6 @@ public class JdkUtil { GeneralCommandLine commandLine, ParametersList parametersList) { commandLine.addParameters(parametersList.getList()); - appendEncodingClasspath(javaParameters, commandLine, parametersList); - } - - private static void appendEncodingClasspath(SimpleJavaParameters javaParameters, - GeneralCommandLine commandLine, - ParametersList parametersList) { appendEncoding(javaParameters, commandLine, parametersList); if (!parametersList.hasParameter("-classpath") && !parametersList.hasParameter("-cp")){ commandLine.addParameter("-classpath");