All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.core.lang.SystemUtil Maven / Gradle / Ivy

package com.moon.core.lang;

import com.moon.core.util.ResourceUtil;

import java.io.InputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

import static com.moon.core.lang.ThrowUtil.noInstanceError;

/**
 * @author moonsky
 */
public final class SystemUtil {

    private SystemUtil() { noInstanceError(); }

    public static boolean resourceExists(String path) { return ResourceUtil.resourceExists(path); }

    public static InputStream getResourceAsInputStream(String path) {
        return ResourceUtil.getResourceAsInputStream(path);
    }

    public static long now() { return System.currentTimeMillis(); }

    public static Map getAll() {
        return new HashMap(System.getProperties());
    }

    public static String get(String name) { return get(name, null); }

    public static String get(String name, String defaultValue) {
        Objects.requireNonNull(name);

        String value = null;
        try {
            if (System.getSecurityManager() == null) {
                value = System.getProperty(name);
            } else {
                value = AccessController.doPrivileged((PrivilegedAction) () -> System.getProperty(name));
            }
        } catch (Exception ignore) {
        }

        return value == null ? defaultValue : value;
    }

    public static boolean getBooleanValue(String name, boolean defaultValue) {
        return BooleanUtil.defaultIfInvalid(get(name), defaultValue);
    }

    public static int getIntValue(String name, int defaultValue) {
        return IntUtil.defaultIfInvalid(get(name), defaultValue);
    }

    public static String getAppFileSeparator() { return "/"; }

    public static String getAppLineSeparator() { return "\n"; }

    public static String getFileSeparator() { return get("file.separator"); }

    public static String getLineSeparator() { return get("line.separator"); }

    /**
     * 缓存目录
     */
    public static String getTempDir() { return get("java.io.tmpdir"); }

    /**
     * 用户目录
     */
    public static String getUserDir() { return get("user.dir"); }

    public static String getUserHome() { return get("user.home"); }

    /**
     * 工作目录
     */
    public static String getWorkingDir() { return get("user.dir"); }

    public static String getJvmName() { return get("java.vm.name"); }

    public static String getJvmVersion() { return get("java.vm.version"); }

    public static String getJvmInfo() { return get("java.vm.info"); }

    public static String getJavaVersion() { return get("java.version"); }

    /**
     * java 版本
     *
     * @return 1.6 => 6; 1.7 => 7; 1.8 => 8; 9 => 9
     */
    public static int getJavaVersionAsInt() {
        String version = getJavaVersion();
        if (StringUtil.isEmpty(version)) {
            return -1;
        }
        final int lastDashNdx = version.lastIndexOf('-');
        if (lastDashNdx >= 0) {
            version = version.substring(0, lastDashNdx);
        }
        if (version.startsWith("1.")) {
            // up to java 8
            final int index = version.indexOf('.', 2);
            return IntUtil.toIntValue(version.substring(2, index));
        } else {
            final int index = version.indexOf('.');
            return Integer.parseInt(index < 0 ? version : version.substring(0, index));
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy