تقنية سهلة مضادة للرصاص للتحقق مما إذا كان النظام يحتوي على jre (windows)

StackOverflow https://stackoverflow.com/questions/812100

  •  03-07-2019
  •  | 
  •  

سؤال

آسف لسؤالي الجديد: P إذا طلبت "java -version" في cmd على نظام windows، فهل أنا كذلك؟ مضمون أن النظام سيكون قادرًا على تشغيل ملفات .jar إذا لم أحصل على أي خطأ?

هل كانت مفيدة؟

المحلول

وأعتقد أن الطريقة الوحيدة المضمونة للتحقق لJRE هي محاولة لتشغيل برنامج جافا صغير.

وأو ربما ولا حتى ذلك - وأفترض تصور نظام يمكن أن يكون سوى جزء من المكتبة القياسية جافا مثبتة، وفي هذه الحالة اختبار JAR صغير قد تعمل بشكل جيد ولكن برنامج كامل قد لا. على الرغم من أنني لا يمكن أن أتصور لماذا أي شخص أن يذهب إلى عناء وضع نظام حتى بهذه الطريقة.

نصائح أخرى

ومن سطر الأوامر يجب أن تكون قادرا على استدعاء "--version جافا" الذي سيعود خطأ إذا لم يتم تثبيت جافا أو المثبتة حاليا معلومات الإصدار.

حسنا، من الواضح لا. يمكنك وضع ملف فارغ يسمى java.bat في أي مكان في PATH، مثل C: \ ويندوز \ SYSTEM32. استحضار "جافا" لن تسفر عن أية أخطاء ولكن هذا لا يعني ان هناك JRE تثبيت.

لماذا لا يتم تشغيل ملف فئة صغيرة، الذي كتابة قيمة إلى ملف الذي قمت ثم تحقق؟ إذا فشل، فإنه لا يعمل.

ويمكن أن تكون قيمة جيدة في قيمة العقار نظام java.version.

على نظام التشغيل Windows، يمكنك التحقق من التسجيل في HKLM\SOFTWARE\JavaSoft\Java Plug-in.من هناك، كل مفتاح فرعي هو JRE مثبت.

يحرر إليك رمز C# الذي سيُرجع مجموعة من السلاسل مع JRE المثبتة

public string[] GetInstalledJavas() {
        // hold the registry subkeys that list the installed JRE's
        string[] jres = null;
        try {
            RegistryKey myKey = Registry.LocalMachine;
            myKey = myKey.OpenSubKey(@"SOFTWARE\JavaSoft\Java Plug-in"); // read-only
            jres = myKey.GetSubKeyNames();
        } catch (Exception myException) {
            Console.Writeline(myException.ToString());
        }
        return jres;
}

وكنت تشير في الواقع، إذا كنت قلقا فقط حول التحقق على أجهزة ويندوز، والتحقق من التسجيل لمعالج JNLP ... التي يجب أن تضمن وجود JRE حديث نسبيا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top