Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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));
        }