mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] no module path on non-modular JDK
This commit is contained in:
+17
-6
@@ -30,6 +30,8 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.options.SettingsEditor;
|
||||
import com.intellij.openapi.options.SettingsEditorGroup;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.JavaSdk;
|
||||
import com.intellij.openapi.projectRoots.JavaSdkVersion;
|
||||
import com.intellij.openapi.util.DefaultJDOMExternalizer;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
@@ -45,6 +47,9 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.intellij.openapi.util.Pair.pair;
|
||||
|
||||
public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunConfigurationModule>
|
||||
implements CommonJavaRunConfigurationParameters, SingleClassConfiguration, RefactoringListenerProvider {
|
||||
@@ -281,12 +286,18 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
|
||||
}
|
||||
|
||||
private static void setupModulePath(JavaParameters params, JavaRunConfigurationModule module) {
|
||||
PsiClass mainClass = module.findClass(params.getMainClass());
|
||||
if (mainClass != null) {
|
||||
PsiJavaModule mainModule = JavaModuleGraphUtil.findDescriptorByElement(mainClass);
|
||||
if (mainModule != null) {
|
||||
params.setModuleName(mainModule.getModuleName());
|
||||
params.getModulePath().addAll(params.getClassPath().getPathList());
|
||||
JavaSdkVersion version = Optional.ofNullable(params.getJdk())
|
||||
.map(jdk -> pair(jdk.getSdkType(), jdk))
|
||||
.map(p -> p.first instanceof JavaSdk ? ((JavaSdk)p.first).getVersion(p.second) : null)
|
||||
.orElse(null);
|
||||
if (version != null && version.isAtLeast(JavaSdkVersion.JDK_1_9)) {
|
||||
PsiClass mainClass = module.findClass(params.getMainClass());
|
||||
if (mainClass != null) {
|
||||
PsiJavaModule mainModule = JavaModuleGraphUtil.findDescriptorByElement(mainClass);
|
||||
if (mainModule != null) {
|
||||
params.setModuleName(mainModule.getModuleName());
|
||||
params.getModulePath().addAll(params.getClassPath().getPathList());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user