From 77e38903b143b83c355d6d39afab2255962a6841 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 8 Oct 2015 20:30:26 +0200 Subject: [PATCH] alternative jre: accept jdk path as valid jre; save system independent paths to enable path macros (sharing inside JDK team; common layout) --- .../src/com/intellij/execution/ui/JrePathEditor.java | 4 ++-- .../intellij/execution/util/JavaParametersUtil.java | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/ui/JrePathEditor.java b/java/execution/impl/src/com/intellij/execution/ui/JrePathEditor.java index c2625525774d..74429b67f282 100644 --- a/java/execution/impl/src/com/intellij/execution/ui/JrePathEditor.java +++ b/java/execution/impl/src/com/intellij/execution/ui/JrePathEditor.java @@ -239,13 +239,13 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor { @Override public void render(SimpleColoredComponent component, boolean selected) { - component.append(getPresentableText()); + component.append(FileUtil.toSystemDependentName(getPresentableText())); component.setIcon(AllIcons.Nodes.Folder); } @Override public String getPresentableText() { - return FileUtil.toSystemDependentName(myPath); + return myPath; } @Override diff --git a/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java b/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java index 451e25655dd2..cda8aa8660c3 100644 --- a/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java +++ b/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java @@ -32,6 +32,7 @@ import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.ex.PathUtilEx; import com.intellij.openapi.roots.*; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiClass; @@ -56,6 +57,11 @@ public class JavaParametersUtil { Project project = configuration.getProject(); Module module = ProgramParametersUtil.getModule(configuration); + String alternativeJrePath = configuration.getAlternativeJrePath(); + if (alternativeJrePath != null) { + configuration.setAlternativeJrePath(ProgramParametersUtil.expandPath(alternativeJrePath, null, project)); + } + String vmParameters = configuration.getVMParameters(); if (vmParameters != null) { vmParameters = ProgramParametersUtil.expandPath(vmParameters, module, project); @@ -156,10 +162,7 @@ public class JavaParametersUtil { return configuredJdk; } - if (JdkUtil.checkForJdk(jreHome)) { - throw new CantRunException(ExecutionBundle.message("jre.path.is.jdk.error.message")); - } - if (!JdkUtil.checkForJre(jreHome)) { + if (!JdkUtil.checkForJre(jreHome) && !JdkUtil.checkForJdk(jreHome)) { throw new CantRunException(ExecutionBundle.message("jre.path.is.not.valid.jre.home.error.message", jreHome)); }