2010-10-23 8 views
5

के आधार पर निष्पादित करने के लिए कौन सा आदेश निष्पादित कर सकता है मुझे एक प्रोग्राम बनाना है जो विंडोज के लिए "ipconfig" और लिनक्स के लिए "ifconfig" का उपयोग करके नेटवर्क सेटिंग्स प्रिंट करेगा, लेकिन मुझे इसे अद्वितीय के साथ करने की ज़रूरत है ओएस दोनों के लिए कार्यान्वयन।जावा प्रोग्राम कैसे तय कर सकता है कि ओएस

उत्तर

9

आप के माध्यम से

System.getProperty("os.name") 

कुछ नमूना कोड के लिए this page पर एक नज़र डालें ऑपरेटिंग सिस्टम के नाम पर प्राप्त कर सकते हैं।

:


यदि यह कोई मौका स्थानीय होस्ट में आपकी रुचि है के आईपी से है, वहाँ तरीके यह सीधे जावा में मिल रहे हैं


"आईपी जानकारी दिखाने" के लिए कोई तरीका नहीं है - कमांड एफ है या एक मनमाना ऑपरेटिंग सिस्टम। प्रत्येक ऑपरेटिंग सिस्टम नाम के लिए मैन्युअल रूप से आदेश (यदि एक है) को कड़ी-कोड करना होगा।

+0

धन्यवाद। मुझे पता है कि मुझे यह जानने की जरूरत है कि प्रोग्राम को कैसे तय किया जाए कि ओएस – jboy

+0

"मैक ओएस एक्स" के आधार पर रनटाइम पर किस प्रक्रिया को निष्पादित करना है! –

+0

@ टोनी एननिस: फिर * "ifconfig" * ठीक काम करेगा ... (ओएस एक्स पर एक ipconfig भी है, लेकिन वह एक अलग है)। इसके अलावा, ओएस एक्स का * ifconfig * काफी लिनक्स * ifconfig * है। – SyntaxT3rr0r

3

aioobe's solution पर निर्माण:

final String osname = System.getProperty("os.name").toLowerCase(); 
String processName; 
if(osname.startsWith("win")) 
    processName="ipconfig /some /parameter"; 
else 
    processName="ifconfig -some -parameter"; 
Runtime.getRuntime().exec(processName); 
3

संदर्भ के लिए, एक ठोस example कि केवल एक विशेष ओएस के लिए एक संपत्ति सेट है:

if (System.getProperty("os.name").startsWith("Mac OS X")) { 
    System.setProperty("apple.awt.graphics.UseQuartz", "true"); 
} 
5

अन्य उत्तर के पूरक के रूप में, मैं हूँ कॉमन्स लैंग से SystemUtils का उल्लेख करें जो विभिन्न स्थिरता जैसे IS_OS_UNIX, IS_OS_WINDOWS, आदि

संबंधित मुद्दे

 संबंधित मुद्दे