diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Main.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Main.java index 519958d9ff7..31be2bb33c5 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Main.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Main.java @@ -64,7 +64,7 @@ public final class Main { } public Provider() { - this(Main::loadBundlingEnvironment); + this(DefaultBundlingEnvironmentLoader.INSTANCE); } @Override @@ -104,7 +104,7 @@ public final class Main { } static int run(PrintWriter out, PrintWriter err, String... args) { - return run(Main::loadBundlingEnvironment, out, err, args); + return run(DefaultBundlingEnvironmentLoader.INSTANCE, out, err, args); } static int run(Supplier bundlingEnvSupplier, PrintWriter out, PrintWriter err, String... args) { @@ -310,9 +310,14 @@ public final class Main { return System.getProperty("java.version"); } - private static CliBundlingEnvironment loadBundlingEnvironment() { - return ServiceLoader.load( - CliBundlingEnvironment.class, - CliBundlingEnvironment.class.getClassLoader()).findFirst().orElseThrow(); + private enum DefaultBundlingEnvironmentLoader implements Supplier { + INSTANCE; + + @Override + public CliBundlingEnvironment get() { + return ServiceLoader.load( + CliBundlingEnvironment.class, + CliBundlingEnvironment.class.getClassLoader()).findFirst().orElseThrow(); + } } }