6

基盤となるシステムから情報を収集する必要があるJavaで小さなライブラリを作成しています。Javaのシステムプロパティからほとんどのものを読み取ることはできますが、Linuxで実行したときにディストリビューションの名前を抽出する正しい方法を見つけることができないようです。呼び出し

System.getProperty("os.name");

「Linux」(これも収集します)を返しますが、「Ubuntu」などを取得する方法も探しています。このソリューションはJavaで必要であり、/ etc/releaseの解析を行う必要はありません。

4

3 に答える 3

9

呼び出しを試すことはできますがlsb_release -i、これが機能することは保証されていません。

于 2010-12-02T11:33:03.320 に答える
8

これを確実かつ正確に行うことは不可能です。私が提案できる最善の方法は、「uname -a」の出力を取得して使用することです。

注: これは Java の制限ではありません。ディストリビューションを特定するための一般的な (かつ正確な) 手段はありません。

于 2010-12-02T11:31:51.890 に答える
4

私は通常、次のコマンドを使用します。

cat /etc/issue

このファイルを Java で読み取るのは非常に簡単です。問題は、このファイルがすべての (または少なくとも大部分の) Linux ディストリビューションにあるかどうかです。必要な場所ならどこでも見つけましたが、それほど頻繁には必要ありませんでした。

于 2010-12-04T21:50:07.157 に答える