Unterschied Unix und Windows



  • Hi Guys!

    Ich hab da mal ne frage wie kann ich bei Java unterscheiden ob ich auf einer UNIX-Plattform bin oder auf einer Windows-Plattform?
    also in C gibt es ja dazu #ifdef gibts sowas in Java auch?

    THX im voraus!



  • du kannst es aus den system properties mit System.getProperty("String") auslesen

    allerdings weiss ich nicht mehr was der richtige string war



  • Vielleicht ja "os" oder sowas?
    Ich weis es nicht, ich weis nur, dass man es z.B. daran erkennen kann das die Dimensionsangaben der Fenster scheinbar etwas komisch umgesetzt werden. Als ich auf Mandrake Linux ein Fenster mit x = 40 und y = 20 bekam ich ein Fenster bei dem sich die y-Achse über den gesamten Bildschirm streckte....


  • Mod

    Wofür brauchst du das denn? Ich würde erstmal davon ausgehen, dass du etwas falsch machst, wenn du eine Unterscheidung von verschiedenen Betriebssystemen in deinem Programm brauchst.



  • Ich habe ein einen Java-Installer gebaut! Und bekanntlich kann ich diesen Installer auf allen OS benutzten! Jetzt ist es aber so das wenn ich ein Programm installiere welche als beispiel ein *.sh (für AIX) und *.bat (für Windows) enthält! Soll er die *.sh nur dann mitinstallieren wenn wir uns auf AIX befinden und wenn wir auf Windows sind dann nur die *.bat!


  • Mod

    Ach so, dann sieht das doch nicht nach einem Fehler aus. Solche Programme gehören wohl zu den Ausnahmen, bei denen man das braucht.

    Hat es inzwischen mit den Properties geklappt?



  • Leider noch nicht den er kennt den Befehl nicht!
    Oder besser das Key-Wort!

    Code :
    String OS = System.getProperty(os.name);



  • Du sollst ja auch einen String übergeben und nicht eine Nichtvorhandene Konstante 😉

    System.out.printkln(System.getProperty("os.name"));
    


  • Hey MEGALOL! 😞

    Na klar hast ja recht hab ich gar ned gesehn! 🙄

    Mega THX! 😃


  • Mod

    Da kann man sich doch mal schnell ein kleines Testprogramm schreiben:

    import java.util.*;
    
    public class PropertyTest
    {
       public static void main (String [] args)
       {
          Properties prop = System.getProperties();
          Enumeration keys = prop.propertyNames();
          while (keys.hasMoreElements())
          {
             String key = (String)keys.nextElement();
    	 System.out.print (key);
    	 System.out.print (" : ");
    	 System.out.println (prop.getProperty(key));
          }
       }
    }
    

    Output bei mir:

    java.runtime.name : Java(TM) 2 Runtime Environment, Standard Edition
    sun.boot.library.path : /usr/lib/SunJava2-1.4.1/jre/lib/i386
    java.vm.version : 1.4.1_02-b06
    java.vm.vendor : Sun Microsystems Inc.
    java.vendor.url : http://java.sun.com/
    path.separator : :
    java.vm.name : Java HotSpot(TM) Client VM
    file.encoding.pkg : sun.io
    user.country : DE
    sun.os.patch.level : unknown
    java.vm.specification.name : Java Virtual Machine Specification
    user.dir : /home/Otaku/TestProjects
    java.runtime.version : 1.4.1_02-b06
    java.awt.graphicsenv : sun.awt.X11GraphicsEnvironment
    java.endorsed.dirs : /usr/lib/SunJava2-1.4.1/jre/lib/endorsed
    os.arch : i386
    java.io.tmpdir : /tmp
    line.separator :
    
    java.vm.specification.vendor : Sun Microsystems Inc.
    os.name : Linux
    sun.java2d.fontpath :
    java.library.path : /usr/lib/SunJava2-1.4.1/jre/lib/i386/client:/usr/lib/SunJava2-1.4.1/jre/lib/i386:/usr/lib/SunJava2-1.4.1/jre/../lib/i386
    java.specification.name : Java Platform API Specification
    java.class.version : 48.0
    java.util.prefs.PreferencesFactory : java.util.prefs.FileSystemPreferencesFactory
    os.version : 2.4.20-4GB
    user.home : /home/Otaku
    user.timezone :
    java.awt.printerjob : sun.print.PSPrinterJob
    file.encoding : ISO-8859-15
    java.specification.version : 1.4
    user.name : Otaku
    java.class.path : .
    java.vm.specification.version : 1.0
    sun.arch.data.model : 32
    java.home : /usr/lib/SunJava2-1.4.1/jre
    java.specification.vendor : Sun Microsystems Inc.
    user.language : de
    java.vm.info : mixed mode
    java.version : 1.4.1_02
    java.ext.dirs : /usr/lib/SunJava2-1.4.1/jre/lib/ext
    sun.boot.class.path : /usr/lib/SunJava2-1.4.1/jre/lib/rt.jar:/usr/lib/SunJava2-1.4.1/jre/lib/i18n.jar:/usr/lib/SunJava2-1.4.1/jre/lib/sunrsasign.jar:/usr/lib/SunJava2-1.4.1/jre/lib/jsse.jar:/usr/lib/SunJava2-1.4.1/jre/lib/jce.jar:/usr/lib/SunJava2-1.4.1/jre/lib/charsets.jar:/usr/lib/SunJava2-1.4.1/jre/classes
    java.vendor : Sun Microsystems Inc.
    file.separator : /
    java.vendor.url.bug : http://java.sun.com/cgi-bin/bugreport.cgi
    sun.cpu.endian : little
    sun.io.unicode.encoding : UnicodeLittle
    sun.cpu.isalist :
    

    EDIT: Ups! Hab wohl das Problem an der falschen Stelle gesehen! 😕 ...wie peinlich! 😃 Naja, vielleicht kann ja trotzdem wer das Programm gebrauchen.



  • @Gregor: Danke! WOllte schon immer mal einen Thread haben, bei dem alle System-Properties sichtbar sind! 👍


  • Mod

    😃 😃 ...die Suche hätte dir auch weitergeholfen:

    http://www.c-plusplus.net/forum/viewtopic.php?t=37464&highlight=properties

    Interessant, dass das alte Programm praktisch genau dem entspricht, was ich gerade geschrieben habe! ...das kann kein Zufall sein! 😃 😃



  • *ouch* 🙂



  • Also nochmal vielen Dank an alle die mir geholfen haben!

    😃 😃 😃 😃 😃 😃 😃 😃 😃 😃



  • Was macht printkln?


  • Mod

    k-line schrieb:

    Was macht printkln?

    Sag ich nicht! :p



  • Dann reiche ich die Frage mal an Cengiz weiter (der diese Methode auch benutzt hat)


Log in to reply