private List<Path> normalizePathsInEnv(final String envName, final boolean multi) {
        if (!this.env.containsKey(envName)) {
            return Collections.unmodifiableList(new ArrayList<Path>());
        }
        final String value = this.env.get(envName);
        if (value == null || value.isEmpty()) {
            return Collections.unmodifiableList(new ArrayList<Path>());
        }

        final List<String> pathStrings = splitPathStrings(value, multi);
        final ArrayList<Path> paths = new ArrayList<>();
        for (final String pathString : pathStrings) {
            if (pathString.isEmpty()) {
                continue;
            }

            final Path path;
            try {
                path = Paths.get(pathString);
            } catch (final InvalidPathException ex) {
                logger.error("Environment variable \"" + envName + "\" is invalid: \"" + pathString + "\"", ex);
                throw ex;
            }

            if (!path.isAbsolute()) {
                final String message = "Environment variable \"" + envName + "\" is not absolute.";
                final IllegalArgumentException ex = new IllegalArgumentException(message);
                logger.error(message, ex);
                throw ex;
            }

            final Path normalized = path.normalize();
            if (!normalized.equals(path)) {
                logger.warn("Environment variable \"" + envName + "\" is not normalized: "
                             + "\"" + pathString + "\", " + "then resolved to: \"" + normalized.toString() + "\"");
            }

            // Symbolic links are intentionally NOT resolved with Path#toRealPath.
            paths.add(normalized);
        }

        return Collections.unmodifiableList(paths);
    }
Returns normalized paths in an environment variable.

<p>Note that a path in an environment variable should be an absolute path.
embulk-core/src/main/java/org/embulk/cli/EmbulkSystemPropertiesBuilder.java