List<String> (boolean effective) { if (effective) { return ManagementFactory.getRuntimeMXBean().getInputArguments(); } else { List<String> platformOptions = List.of(), userOptions = List.of(); Path platformFile = getPlatformOptionsFile(); if (Files.exists(platformFile)) { try { platformOptions = Files.readAllLines(platformFile, getFileCharset()); } catch (IOException e) { LOG.warn(e); } } Path userFile = getUserOptionsFile(); if (userFile != null && Files.exists(userFile)) { ourUserFileLock.readLock().lock(); try { userOptions = Files.readAllLines(userFile, getFileCharset()); } catch (IOException e) { LOG.warn(e); } finally { ourUserFileLock.readLock().unlock(); } } List<String> result = new ArrayList<>(platformOptions.size() + userOptions.size()); result.addAll(platformOptions); result.addAll(userOptions); return result; } }