2009-07-08 6 views
26

में भौतिक मशीन का नाम ढूंढें मैं भौतिक मशीन नाम कैसे प्राप्त कर सकता हूं जिसमें मेरा जेवीएम चल रहा है?जावा

(भौतिक = ओएस, VMware अप करने के लिए ...)

+0

क्या मंच? क्या इससे कोई फर्क पड़ता है कि यह ओएस विशिष्ट है? – Gandalf

+0

क्या आपका मतलब एफक्यूडीएन है? – kmarsh

+0

सर्वश्रेष्ठ मंच-स्वतंत्र है। – ripper234

उत्तर

52
String computername=InetAddress.getLocalHost().getHostName(); 
System.out.println(computername); 
+5

ध्यान दें कि यह DNS पर निर्भर करता है और विफल हो सकता है: http://stackoverflow.com/questions/7883542/getting-the-computer-name-in-java – Vadzim

+1

जिस तरह से सवाल phrased है: "भौतिक मशीन नाम प्राप्त करें", यह * सही * नहीं है। कड़ाई से बोलते हुए उपर्युक्त आपको मेजबान का ** नेटवर्क नाम **, आमतौर पर लोकहोस्ट इंटरफेस का नाम बताएगा। Http://stackoverflow.com/a/40702767/1504556 देखें। जावा में स्थानीय मशीन के "मशीन नाम" या "कंप्यूटर नाम" पाने के लिए कोई (मानकीकृत) तरीका नहीं है। – peterh

+0

पूरी तरह से @Vadzim के साथ सहमत हुए। डीएनसीपी द्वारा असाइन किए गए आईपी पते को डीएनएस या डायनेमिक DNS मैपिंग के बिना, कंप्यूटर का नाम वास्तविक कंप्यूटर नाम से बहुत अलग हो सकता है। – someone

1

मैं बिल्कुल यकीन है कि आप शारीरिक मशीन नाम से क्या मतलब है नहीं कर रहा हूँ। आपकी टिप्पणी "(भौतिक = ओएस, vmware तक ...)" मुझे समझाने की जरूरत है।

लेकिन आप System.getProperty (स्ट्रिंग कुंजी) जहां कुंजी कुंजी यहां पाया में से एक है का उपयोग कर सकते हैं: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperties()

है कि आप ओएस नाम बताना चाहिए। यदि आपको मेजबाननाम jsight की सलाह का उपयोग करने की आवश्यकता है।

+0

मेरा मतलब है कि कंप्यूटर का नाम JVM चल रहा है। अधिकतर एक भौतिक कंप्यूटर, लेकिन यदि JVM किसी अन्य आभासी मशीन के अंदर चल रहा है तो वह नाम अच्छा है। – ripper234

11

युगल विकल्प, के बाद से मुझे यकीन है कि आप क्या चाहते हैं नहीं कर रहा हूँ:

RuntimeMXBean rmx = ManagementFactory.getRunTimeMXBean(); 
System.out.println(rmx.getName()); 

या ...

System.out.println(InetAddress.getLocalHost().getHostName()); 

या लिनक्स

Runtime r = Runtime.getRuntime(); 
Process p = r.exec("uname -a"); 
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()); 
System.out.println(r.readLine()); 
+0

मैं इंप्रेशन getRunTimeMXBean() 100% विश्वसनीय – Hector

+0

"uname -n" सटीक काम नहीं करता है। –

9

पर Windows, यदि आप वर्कस्टेशन नाम चाहते हैं, आप इसका उपयोग कर सकते हैं:

System.getenv("COMPUTERNAME")