My computer now has all of the following Javas installed:
32-bit:
JDK 7u7
JRE 7u7
64-bit:
JRE 6u24
JDK 7u7
JRE 7u7
Installed them in the order of jre6, jdk7x32, jre7x32, jdk7x64, jre7x64.
Running TechnicLauncher.exe from my normal account now results in a vanishing launcher as usual. But
runas /user:"Test" TechnicLauncher.exe
still gives the full launcher window opening and allows me to play the Technic pack. Multiple Javas is absolutely a complete non-issue. Also, for the technical-minded, Java is not in my path and JAVA_HOME is not set, so those are not necessary. I believe the launcher simply chooses the most recently installed 64-bit (or 32-bit on 32-bit systems) JRE that is available.
Further to the point, this is instructive:
public static void RunLauncher(string launcherPath)
{
string path1 = Program.GetJavaInstallationPath() ?? Program.LocateJavaFromPath() ?? Program.LocateJavaPath() ?? Program.LocateJavaFromProgramFiles();
if (path1 == null)
{
int num = (int) MessageBox.Show("Can't find java directory.");
}
else
Process.Start(new ProcessStartInfo()
{
CreateNoWindow = true,
WorkingDirectory = Application.StartupPath,
FileName = Path.Combine(path1, "bin\\java.exe"),
Arguments = string.Format("-jar {0}", (object) launcherPath),
UseShellExecute = false
});
Application.Exit();
}
I've now decompiled and patched TechnicLauncher.exe to surround the path to technic-launcher.jar with quotes. It successfully loads the launcher on my computer with all five Javas installed, and a username with spaces in it. Are there any rules against sharing this patched version?