8

java を使用して os 名を見つける方法はありますか?

以下のコードを試してみましたが、次のように返されます (Linux 、 windows ..)

System.getProperty("os.name")

以下の形式を検出する必要があります

Linux - 「ubuntu、mandriva ..」、Windows - 「xp、vista ...」

私の英語でごめんなさい:-( !!!

何か案が ?

4

4 に答える 4

11

System.getProperty()次のプロパティを取得するために使用できます。

  • os.name: オペレーティング システム名
  • os.arch: オペレーティング システムのアーキテクチャ
  • os.version: オペレーティング システムのバージョン

os.versionあなたの場合、物件を探していると思います。のjavadocSystem.getProperties()は、取得できるプロパティの完全なリストが含まれています。

編集

これを Linux Mint でテストしたところ、os.versionプロパティを取得すると、実際にはディストリビューション バージョンではなく、カーネル バージョンが返されるようです。

Linux
amd64
2.6.38-8-generic

この投稿を見つけた後、Java API を介して実行している Linux ディストリビューションを見つける信頼できる方法がないように思われます。

Linux で実行していることがわかっている場合は、代わりに Java から次のシステム コマンドのいずれかを実行できますが、ディストリビューションを grep/parse する必要があります。

  • cat /etc/*-release
于 2012-04-30T12:28:33.193 に答える
5

これはあなたを助けるかもしれません:

System.out.println("\nName of the OS: " + System.getProperty("os.name"));
System.out.println("Version of the OS: " + System.getProperty("os.version"));
System.out.println("Architecture of the OS: " + System.getProperty("os.arch"));

編集:これは、Windows で返されるものです。

Name of the OS: Windows XP
Version of the OS: 5.1
Architecture of the OS: x86
于 2012-04-30T12:29:34.907 に答える
1

照会できるシステム プロパティがいくつかあります。詳細については、チュートリアルをご覧ください。これらの 3 つの一部またはすべてを組み合わせると、次のように役立ちます。

System.getProperty("os.arch")
System.getProperty("os.name")
System.getProperty("os.version")
于 2012-04-30T12:30:41.513 に答える
-1

見てみましょう: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperties%28%29

プロパティ: 'os.name'

于 2012-04-30T12:27:54.133 に答える