Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: mayk.ee 30. 05. 2013, 15:46:44
-
Zdravim...
robim drobnu multiplatformnu aplikaciu v jave, a potreboval by som v aplikacii detekovat na akom OS bola spustena a na akej architekture...
V Linuxe (Kubuntu 12.04) zistim zo System.getProperty("os.name") akurat "Linux"...
Takze potrebujem zistit ci Linux je 32/64... Pokial mozno aby to bolo co najuniverzalnejsie - napriec vsetkymi distribuciami... (alebo aspon Ubuntu derivaty)
Windows mam poriesene testovanim existencie ProgramFiles(x86)... ostatne OS nieje potrebne riesit...
-
A co je cilem? Jestli ti nestaci vedet, jestli bezis pod 32/64 bit JVM. Na Oracle jave by melo fungovat tohle: System.getProperty("sun.arch.data.model")
Jinak tady je knihovna, co by to mela umet: http://sourceforge.net/projects/sigar/
-
Windows mam poriesene testovanim existencie ProgramFiles(x86)...
To asi není moc dobrý nápad. Mám dojem, že jméno této složky závisí na jazykové mutaci Windows.
-
jehovista: No zabudol som napisat, ze nestaci... sice aplikacii je jedno pod cim bezi, ale je to taky loader dll-ciek a dalsich udelatok, aby ina aplikacia mohla fungovat spravne... ale vraj sa to uz poriesi inak, takze pre mna problem solved :D ale vdaka aj tak...
Jakub Galgonek: cez globalne premenne to funguje na hociakych verziach... otestovane...
-
Tohle je kus jednoho meho kodu, snad je to prehledne ...
hlavniPanel.log(HlavniPanel.LOG_TEXT,"java vendor: "+System.getProperty("java.vendor"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"java runtime: "+System.getProperty("java.runtime.name"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"java version: "+System.getProperty("java.version"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"java home: "+System.getProperty("java.home"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"operating system: "+System.getProperty("os.name")+" | "+System.getProperty("os.version")+" | "+System.getProperty("os.arch"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"user name: "+System.getProperty("user.name"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"user home directory: "+System.getProperty("user.home"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"working directory: "+System.getProperty("user.dir"));
hlavniPanel.log(HlavniPanel.LOG_TEXT,"maximum available memory for jvm: " + Runtime.getRuntime().maxMemory() / (1024*1024) + " MiB");
-
Windows mam poriesene testovanim existencie ProgramFiles(x86)...
To asi není moc dobrý nápad. Mám dojem, že jméno této složky závisí na jazykové mutaci Windows.
Jo. A pak je jeste radost s kodovanim narodnich znaku tech cest jazykovych mutaci. Diky tomu bylo/je dost verzi vmware serveru nefunkcnich na ceskych widlich.
-
Takze potrebujem zistit ci Linux je 32/64... Pokial mozno aby to bolo co najuniverzalnejsie - napriec vsetkymi distribuciami... (alebo aspon Ubuntu derivaty)
Takze to ma byt jen pro x86 architekturu nebo i trosku univerzalnejsi? Muzes samozrejme spustit ja nevim uname -n nebo uname -p kdyz uz zdetekujes Linux, coz neni problem (popr. to samy dela posixova funkce uname pokud si chces hrat s JNI :-). Taky /proc/cpuinfo da podrobnejsi udaje.
-
http://stackoverflow.com/questions/16549322/determine-os-architecture-and-bitness-in-java