public static void TestInstalledVersions() { JvmCollection auto = new JvmCollection(); JvmCollection manual = new JvmCollection(false); foreach(KeyValuePair<string, string> pair in auto.InstalledVersions) manual.AddInstalledJvm(pair.Key, pair.Value); Assert.AreEqual(auto.InstalledVersions, manual.InstalledVersions); }
/// <summary> /// Locates the installed Java version and loads a JVM. If no suitable JVM can be found /// a MajalaExeption will be thrown. /// </summary> /// <param name="minVersion">Minimum Java Version required.</param> /// <param name="maxVersion">Maximum Java Version allowed (or an empty String).</param> /// <returns>Jvm object with a suitable loaded JVM.</returns> private static Jvm LocateAndLoadInstalledJvm(string minVersion, string maxVersion) { JvmCollection jvmCollection = new JvmCollection(); Version minRequiredVersion = new Version(minVersion); Version maxRequiredVersion = maxVersion.Length > 0 ? new Version(maxVersion) : null; if (maxVersion.Length == 0) Logger.Log(string.Format(CultureInfo.CurrentCulture, Resources.LogRequiredJvmV1, minVersion)); else Logger.Log(string.Format(CultureInfo.CurrentCulture, Resources.LogRequiredJvmV2, maxVersion)); int bits = SystemHelper.ProcessBitness(); if (jvmCollection.InstalledVersions.Count == 0) throw new MajalaException(string.Format(CultureInfo.CurrentCulture, Resources.NoSuitableJavaFoundV1, bits)); foreach (KeyValuePair<string, string> p in jvmCollection.InstalledVersions) { string path = p.Key; string version = p.Value; Version currentVersion = new Version(version); if (currentVersion.CompareTo(minRequiredVersion) >= 0) { if (maxVersion.Length == 0 || currentVersion.CompareTo(maxRequiredVersion) <= 0) { Logger.Log(string.Format(CultureInfo.CurrentCulture, Resources.LogJvmIsOk, currentVersion)); return new Jvm(path); } else { Logger.Log(string.Format(CultureInfo.CurrentCulture, Resources.LogJvmIsTooYoung, currentVersion)); } } else { Logger.Log(string.Format(CultureInfo.CurrentCulture, Resources.LogJvmIsTooOld, currentVersion)); } } if (maxVersion.Length == 0) throw new MajalaException(string.Format(CultureInfo.CurrentCulture, Resources.NoSuitableJavaFoundV2, bits, minVersion)); else throw new MajalaException(string.Format(CultureInfo.CurrentCulture, Resources.NoSuitableJavaFoundV3, bits, minVersion, maxVersion)); }