diff options
Diffstat (limited to 'src/main/java/org/javacs/Lib.java')
-rw-r--r-- | src/main/java/org/javacs/Lib.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/main/java/org/javacs/Lib.java b/src/main/java/org/javacs/Lib.java index 61c5bc4..083e69c 100644 --- a/src/main/java/org/javacs/Lib.java +++ b/src/main/java/org/javacs/Lib.java @@ -3,18 +3,25 @@ package org.javacs; import java.io.File; import java.lang.System; import java.util.Optional; +import java.util.Arrays; import java.nio.file.*; class Lib { static Optional<Path> srcZipPath() { return Optional.ofNullable(System.getenv("JAVA_HOME")) - .flatMap(home -> Optional.of(Paths.get(home).resolve("lib/src.zip"))) - .flatMap(path -> { - if (path.toFile().exists()) { - return Optional.of(path); - } else { - return Optional.empty(); + .map(home -> { + return Arrays.asList(new Path[]{ + Paths.get(home).resolve("lib/src.zip"), + Paths.get(home).resolve("src.zip"), + }); + }) + .flatMap(paths -> { + for (Path path : paths) { + if (path.toFile().exists()) { + return Optional.of(path); + } } + return Optional.empty(); }); } |