OS Name a Unix.

OS Name a Unix.
0

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

Kopiuj
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"?

Kandif
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:231
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:

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

?

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:minuta
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.