OS Name a Unix.

0

Jeśli chodzi o detekcję system operacyjnego pod Java, po świece krąży następujący kod:

public class OSValidator {

    private static String OS = System.getProperty("os.name").toLowerCase();

    public static void main(String[] args) {

        System.out.println(OS);

        if (isWindows()) {
            System.out.println("This is Windows");
        } else if (isMac()) {
            System.out.println("This is Mac");
        } else if (isUnix()) {
            System.out.println("This is Unix or Linux");
        } else if (isSolaris()) {
            System.out.println("This is Solaris");
        } else {
            System.out.println("Your OS is not support!!");
        }
    }

    public static boolean isWindows() {
        return (OS.indexOf("win") >= 0);
    }

    public static boolean isMac() {
        return (OS.indexOf("mac") >= 0);
    }

    public static boolean isUnix() {
        return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 );
    }

    public static boolean isSolaris() {
        return (OS.indexOf("sunos") >= 0);
    }
    public static String getOS(){
        if (isWindows()) {
            return "win";
        } else if (isMac()) {
            return "osx";
        } else if (isUnix()) {
            return "uni";
        } else if (isSolaris()) {
            return "sol";
        } else {
            return "err";
        }
    }

}

Pytanie brzmi: Czy wywołanie System.getProperty("os.name") może zwrócić łancuch który zawiera "nix"?

1

Znalazłem to:
http://lopica.sourceforge.net/os.html

A tam jest system o nazwie Digital Unix. Więc chyba jest.

0

Dzięki, jakoś nie trafiłem na nią lub przeoczyłem.

Poza tym, chyba za bardzo popłynąłem... :)

Czy na java SE nie może być przypadkiem tylko system typu Unix albo Windows?
Więc wystarczy:

File.separatorChar == '/'? "Unix" : "Windows"; 

?

0

Jakieś Solarisy to dzisiaj totalna egzotyka, a z drugiej strony nie odcinałbym FreeBSD i innych BSD.

W ogóle dziwny ten kod, jeśli nazwa OS-a się nie zgadza to ma to być "błąd"?

Powiedz do czego ci w ogóle to sprawdzanie systemu. Bo może wystarczy tak jak kol. Krzywy Samiec napisał.

0

Potrzebuje tylko znak separatora pliku dla każdego możliwego systemu. Pogrupować je.

Wiem, że starsze Mac Osy niż X, używały ':' jako separatora, ale chyba nie da się tam postawić aktualnej javy.

0

Tak dla świętego spokoju: są jeszcze jakieś inne możliwości?

0

File.pathSeparator twoim przyjacielem

1 użytkowników online, w tym zalogowanych: 0, gości: 1