summaryrefslogtreecommitdiff
path: root/src/net/minecraft/MinecraftLauncher.java
blob: 14d2e5f417eb2484e8a986b56ac44b7e9e437f8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package net.minecraft;

import java.util.ArrayList;

public class MinecraftLauncher {
	private static final int MIN_HEAP = 511;
	private static final int RECOMMENDED_HEAP = 1024;

	public static void main(String[] args) throws Exception {
		float heapSizeMegs = (float) (Runtime.getRuntime().maxMemory() / 1024L / 1024L);

		if (heapSizeMegs > 511.0F) {
			LauncherFrame.main(args);
		} else {
			try {
				String pathToJar = MinecraftLauncher.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();

				ArrayList<String> params = new ArrayList<String>();

				params.add("javaw");
				params.add("-Xmx1024m");
				params.add("-Dsun.java2d.noddraw=true");
				params.add("-Dsun.java2d.d3d=false");
				params.add("-Dsun.java2d.opengl=false");
				params.add("-Dsun.java2d.pmoffscreen=false");

				params.add("-classpath");
				params.add(pathToJar);
				params.add("net.minecraft.LauncherFrame");
				ProcessBuilder pb = new ProcessBuilder(params);
				Process process = pb.start();
				if (process == null) throw new Exception("!");
				System.exit(0);
			} catch (Exception e) {
				e.printStackTrace();
				LauncherFrame.main(args);
			}
		}
	}
}