public static String getExecDirectoryPath()
    {
        String name = SystemUtils.class.getName().replace('.', '/');
        name = SystemUtils.class.getResource("/" + name + ".class").toString();
        if (name.contains(".jar"))
        {
            name = name.substring(0, name.indexOf(".jar"));
            name = name.substring(name.lastIndexOf(':') + 1,
                    name.lastIndexOf('/') + 1).replace('%', ' ');
            String s = "";
            for (int i = 0; i < name.length(); i++)
            {
                s += name.charAt(i);
                if (name.charAt(i) == ' ')
                {
                    i += 2;
                }
            }
            
            return s.replace('/', File.separatorChar);
        }
        else
        {
            name = SystemUtils.class.getProtectionDomain().getCodeSource()
                    .getLocation().getPath();
            name = name.replace('%', ' ');
            String s = "";
            for (int i = 0; i < name.length(); i++)
            {
                s += name.charAt(i);
                if (name.charAt(i) == ' ')
                {
                    i += 2;
                }
            }
            
            return s.replace('/', File.separatorChar);
        }
    }