我正在解析客戶日誌,我需要弄清楚他們正在運行的發行版。我無法在他們的系統上運行命令,我擁有的只是日誌。我可以可靠地使用os.version的值來確定Linux發行版嗎?
屬性os.name總是返回Linux,但os.version返回看起來是內核版本的東西?例如,2.6.9-42.0.3.ELsmp或2.6.5-7.283-smp。
出現一些google後,os.version的最後一個字符可以映射到發行版。
以ELsmp或el結尾的值映射到Redhat,只是簡單的smp映射到SUSE。
這是真的,還是我只是在想方設法?
我對這個問題有點困惑。你爲什麼「需要」知道這個?爲什麼你的應用程序不能運行一些外部命令來找出版本?爲什麼你不能問顧客? – 2010-08-05 12:47:08
這是一個很好的問題,我有很多現有的數據不包含明確的方式來確定disto。例如,在SUSE上uname,該字符串不包含對SUSE的任何明顯引用,只是SMP。也許有另一個命令可用,但這會導致分叉外部命令,這可能導致其他問題,路徑和權限。如果我能從常見的java虛擬機屬性中找出disto,我的問題變得更加簡單。乾杯。 – KaizenSoze 2010-08-05 13:14:39