java: recognizing Jigsaw JDK
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 2 Jan 2015 09:39:48 +0000 (10:39 +0100)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 2 Jan 2015 09:39:48 +0000 (10:39 +0100)
jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaSdkUtil.java
platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java

index 07a3449283687c3124af796cb02e2feaf4220845..66f7b4959938ced460abd828bfa3acbbbc70c3ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -58,6 +58,10 @@ public class JavaSdkUtil {
         jarDirs = new File[]{libEndorsedDir, libDir, classesDir, libExtDir};
       }
     }
+    else if (new File(home, "lib/modules").exists()) {
+      File libDir = new File(home, "lib");
+      jarDirs = new File[]{libDir};
+    }
     else {
       File libDir = isJre ? new File(home, "lib") : new File(home, "jre/lib");
       File libExtDir = new File(libDir, "ext");
index f7691316df2d307c1d6ac1199b9ffbdaee1fb34c..6641d531c5905c20fb5962ab1759130d43c7903e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-/*
- * @author max
- */
 package com.intellij.openapi.projectRoots;
 
 import com.intellij.execution.configurations.GeneralCommandLine;
@@ -45,6 +41,9 @@ import java.util.jar.Attributes;
 import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 
+/**
+ * @author max
+ */
 public class JdkUtil {
   private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.projectRoots.JdkUtil");
   private static final String WRAPPER_CLASS = "com.intellij.rt.execution.CommandLineWrapper";
@@ -137,6 +136,7 @@ public class JdkUtil {
   public static boolean checkForRuntime(@NotNull String homePath) {
     return new File(homePath, "jre/lib/rt.jar").exists() ||          // JDK
            new File(homePath, "lib/rt.jar").exists() ||              // JRE
+           new File(homePath, "lib/modules").exists() ||             // Jigsaw JDK/JRE
            new File(homePath, "../Classes/classes.jar").exists() ||  // Apple JDK
            new File(homePath, "jre/lib/vm.jar").exists() ||          // IBM JDK
            new File(homePath, "classes").isDirectory();              // custom build