-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBoot.java
71 lines (63 loc) · 1.7 KB
/
Boot.java
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package org.rsbot;
import java.io.IOException;
import java.net.URLDecoder;
/**
* @author Paris
*/
public class Boot {
public static void main(final String[] args) throws IOException {
String location = Boot.class.getProtectionDomain().getCodeSource().getLocation().getPath();
location = URLDecoder.decode(location, "UTF-8").replaceAll("\\\\", "/");
final String app = Application.class.getCanonicalName();
final String flags = "-Xmx512m -Dsun.java2d.d3d=false -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+AggressiveOpts -XX:+UseBiasedLocking";
boolean sh = true;
final char q = '"', s = ' ';
final StringBuilder param = new StringBuilder(64);
switch (Configuration.getCurrentOperatingSystem()) {
case WINDOWS:
sh = false;
param.append("javaw");
param.append(s);
param.append(flags);
break;
case MAC:
param.append("java");
param.append(s);
param.append(flags);
param.append(s);
param.append("-Xdock:name=");
param.append(q);
param.append(Configuration.NAME);
param.append(q);
param.append(s);
param.append("-Xdock:icon=");
param.append(q);
param.append(Configuration.Paths.Resources.ICON);
param.append(q);
break;
default:
param.append("java");
param.append(s);
param.append(flags);
break;
}
param.append(s);
param.append("-classpath");
param.append(s);
param.append(q);
param.append(location);
param.append(q);
param.append(s);
param.append(app);
for (final String arg : args) {
param.append(s);
param.append(arg);
}
final Runtime run = Runtime.getRuntime();
if (sh) {
run.exec(new String[]{"/bin/sh", "-c", param.toString()});
} else {
run.exec(param.toString());
}
}
}