---
title: "Känna av operativsystem?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/119447-känna-av-operativsystem"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "nitro2k01"
published: "2005-01-05T22:31:48.000Z"
updated: "2005-01-06T01:55:51.000Z"
replies: 7
views: 521
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/119447-känna-av-operativsystem"
---

# Känna av operativsystem?

## #1 — nitro2k01, 2005-01-05T22:31Z

Hej! Vet ni hur man känner av vilket operativsystem som ens applikation kör på? Jag behöver skilja ut tre huvudgrupper:

- Windows 9x
- Windows 2000/XP
- Unix-varianter

 
Dessutom skulle jag behöva köra ett konsolkommando om det är Windows 9x som körs, och samla in dess utdata. Finns det inget klockrent sätt att göra detta, så kan jag nöja mig med hur man kallar på ett externt kommando, så kan jag fixa dataläsningen själv.

Permalänk: https://www.webforum.nu/p/119447

## #2 — legis, 2005-01-05T22:42Z

Känner inte till något sätt att göra det med java som täcker alla plattformar. För Windows finns GetVersion. Nog inte bästa sättet men ändå:

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getting_the_system_version.asp>

Permalänk: https://www.webforum.nu/p/1522230

## #3 — nitro2k01, 2005-01-05T22:46Z

Hu-hum, nu var det alltså en funktion i Java som jag letar efter.

Permalänk: https://www.webforum.nu/p/1522233

## #4 — dAEk, 2005-01-05T23:18Z

Bra url: <http://www.tolstoy.com/samizdat/sysprops.html>
Syntax är alltså **System.getProperty("os.name");**

Men jag har för mig att jag läst nånstans på sun's forum att os.name inte behöver returnera "rätt", det är upp till var JVM.. minns att jag också läste nåt om att en JVM gav en "windows 95" fastän det kördes på en '98-burk.

Hade denna länk bland mina bookmarks också: <http://forum.java.sun.com/thread.jspa?forumID=4&threadID=523689>

Vet inte om jag hjälper nåt eller bara förvirrar, jag känner mig rätt förvirrad  :p

Permalänk: https://www.webforum.nu/p/1522251

## #5 — nitro2k01, 2005-01-05T23:35Z

95, 98 och me går under samma kategori denna gång, så det är inget problem. Och jag ska bara använda av sun VM, så det går nog bra. Den länken var användbar.

Åter till min andra fråga, hur kör man systemkommandon, med andra ord startar program i värdmiljön? (Bara aktuellt för Windows för övrigt)

Permalänk: https://www.webforum.nu/p/1522255

## #6 — jonnyz, 2005-01-06T01:05Z

Är det något i stil med

```
Process p = Runtime.getRuntime().exec(cmdline);
```

du är ute efter?

cmdline är en sträng som skickas till operativsystemet.

Permalänk: https://www.webforum.nu/p/1522290

## #7 — sgtpepper, 2005-01-06T01:11Z

> **nitro2k01 skrev:**
>
> Åter till min andra fråga, hur kör man systemkommandon, med andra ord startar program i värdmiljön? (Bara aktuellt för Windows för övrigt)

Använd klassen [Runnable](http://java.sun.com/j2se/1.3/docs/api/java/lang/Runtime.html):

```
		try {
			String cmd = "ver";
			
			Process process = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", cmd});
			BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

			String line = "";
			while((line = br.readLine()) != null) {
				System.out.println(line);		
			}
			
		} catch(IOException ioe) {
			ioe.printStackTrace();
		}
```

Eftersom vi vill köra ett systemkommando så anropar vi det via cmd.exe med växeln /c (Carries out the command specified by string and then terminates). Process-objektet som du får i retur från exec() ger dig en in- och en utström.

// EDIT: cmd.exe-joxet gäller självklart i en WIN-miljö, i en UNIX-miljö så kör man via lämpligt skal, t.ex bash.

Permalänk: https://www.webforum.nu/p/1522293

## #8 — nitro2k01, 2005-01-06T01:55Z

Så man kan fånga en ström bara sådär. Tack iaf!

Permalänk: https://www.webforum.nu/p/1522310

---

Tråden på webben: https://www.webforum.nu/amne/java/119447-känna-av-operativsystem
