diff --git a/example/pom.xml b/example/pom.xml index c43d01a..047d701 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -26,7 +26,7 @@ it.tdlight tdlight-java - 2.7.8.33 + 2.7.8.35 diff --git a/src/main/java/it/tdlight/common/utils/ScannerUtils.java b/src/main/java/it/tdlight/common/utils/ScannerUtils.java index 53df2d8..5dfb40a 100644 --- a/src/main/java/it/tdlight/common/utils/ScannerUtils.java +++ b/src/main/java/it/tdlight/common/utils/ScannerUtils.java @@ -1,8 +1,27 @@ package it.tdlight.common.utils; +import java.io.Console; +import java.util.Scanner; +import java.util.concurrent.atomic.AtomicReference; + public final class ScannerUtils { + private static final Object lock = new Object(); + private static Scanner SCANNER = null; + public static String askParameter(String displayName, String question) { - return System.console().readLine("[%s] %s", displayName, question); + Console console = System.console(); + if (console != null) { + return console.readLine("[%s] %s", displayName, question); + } else { + synchronized (lock) { + if (SCANNER == null) { + SCANNER = new Scanner(System.in); + Runtime.getRuntime().addShutdownHook(new Thread(() -> SCANNER.close())); + } + } + System.out.printf("[%s] %s: ", displayName, question); + return SCANNER.nextLine(); + } } }