2009-12-06 15 views
8

मैं जावा का उपयोग कर प्रोग्राम विंडोज अनुप्रयोगों और यह एक ".jar" फ़ाइल बनाता है जो ".exe" फ़ाइल नहीं है। जब कोई जावा रनटाइम स्थापित क्लाइंट कंप्यूटर ".jar" फ़ाइल खोलता है, तो यह Winrar के साथ एक संग्रह के रूप में चलता है। मैं जानना चाहता हूं कि कैसे जावा रनटाइम स्थापित किया गया है या नहीं, यह पता लगाने के लिए कि जावा रनटाइम स्थापित करने के लिए उपयोगकर्ता को बताए गए संदेश बॉक्स को दिखाने के लिए जावा रनटाइम स्थापित किया गया है या नहीं, या जावा रनटाइम का उपयोग करते हुए ".jar" फ़ाइल लॉन्च करता है ।यह पता लगाने के लिए कि जावा रनटाइम स्थापित है या नहीं

+0

यह केवल WinRAR के साथ खुलता है यदि उनके पास WinRAR इंस्टॉल है :)। –

उत्तर

4

आप रजिस्ट्री में देख सकते हैं। यह आपको बताएगा कि आपके पास जेआरई है, और कौन सा संस्करण है।

this document से:

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\<version number> 
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Development Kit\<version number> 

जहां, प्रमुख नाबालिग और पैच संस्करण संख्या भी शामिल है, उदाहरण के लिए, 1.4.2_06

+0

यह ध्यान दिया जाना चाहिए कि "HKEY_LOCAL_MACHINE \ Software \ JavaSoft \ जावा डेवलपमेंट किट \ <संस्करण संख्या>" रजिस्ट्रीकी सी # फ़ंक्शंस का उपयोग करके प्रोग्रामेटिक रूप से एक्सेस नहीं किया जा सकता है। – LeeCambl

8

आप रजिस्ट्री

RegistryKey rk = Registry.LocalMachine; 
RegistryKey subKey = rk.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment"); 

string currentVerion = subKey.GetValue("CurrentVersion").ToString(); 
0

एक html पृष्ठ जो एक "जावा स्थापित करें" पृष्ठ पर एक रीडायरेक्ट रद्द में एक छोटा सा एप्लेट देख सकते हैं।

संपादित करें: यह लगभग एकमात्र वास्तव में बुलेट प्रूफ तरीका है। JavaSoft युक्त कोई भी रजिस्ट्री कुंजी केवल सूर्य JVM के लिए है और कोई अन्य नहीं (जैसे आईबीएम या बीईए)।

4

बचपन में 'जावा-वर्जन' शुरू करें। एक्स्ट्राकोड की जांच करें और वर्जनइन्फो

List<String> output = new List<string>(); 
    private bool checkIfJavaIsInstalled() 
    { 
     bool ok = false; 

     Process process = new Process(); 
     try 
     { 
      process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      process.StartInfo.CreateNoWindow = true; 
      process.StartInfo.FileName = "cmd.exe"; 
      process.StartInfo.UseShellExecute = false; 
      process.StartInfo.RedirectStandardOutput = true; 
      process.StartInfo.RedirectStandardError = true; 
      process.StartInfo.Arguments = "/c \"" + "java -version " + "\""; 

      process.OutputDataReceived += new DataReceivedEventHandler((s, e) => 
      { 
       if (e.Data != null) 
       { 
        output.Add((string) e.Data); 
       } 
      }); 
      process.ErrorDataReceived += new DataReceivedEventHandler((s, e) => 
      { 
       if (e.Data != null) 
       { 
        output.Add((String) e.Data); 
       } 
      }); 

      process.Start(); 
      process.BeginOutputReadLine(); 
      process.BeginErrorReadLine(); 

      process.WaitForExit(); 

      ok = (process.ExitCode == 0); 
     } 
     catch 
     { 
     } 

     return (ok); 
    } 
संबंधित मुद्दे

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