diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/jdk/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/jdk/package.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py index a90ddff904..31510d739e 100644 --- a/var/spack/repos/builtin/packages/jdk/package.py +++ b/var/spack/repos/builtin/packages/jdk/package.py @@ -3,11 +3,11 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack.util.prefix import Prefix -from spack import * +import os +import re import llnl.util.tty as tty -import os +from spack.util.prefix import Prefix class Jdk(Package): @@ -79,6 +79,19 @@ class Jdk(Package): # can symlink all *.jar files to `prefix.lib.ext` extendable = True + executables = ['^java$'] + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)('-version', output=str, error=str) + + # Make sure this is actually Oracle JDK, not OpenJDK + if 'openjdk' in output: + return None + + match = re.search(r'\(build (\S+)\)', output) + return match.group(1).replace('+', '_') if match else None + @property def home(self): """Most of the time, ``JAVA_HOME`` is simply ``spec['java'].prefix``. |