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()); } } }