void (ParametersList execArgs, String classPath) { List<String> execArgsList = execArgs.getList(); int classPathIndex = execArgsList.indexOf("-classpath"); if (classPathIndex == -1) { classPathIndex = execArgsList.indexOf("-cp"); } if (classPathIndex == -1) { execArgs.prependAll("-classpath", "%classpath" + File.pathSeparator + classPath); } else if (classPathIndex + 1 == execArgsList.size()) { // invalid command line, but we still have to patch it execArgs.add("%classpath" + File.pathSeparator + classPath); } else { String oldClassPath = execArgs.get(classPathIndex + 1); execArgs.set(classPathIndex + 1, oldClassPath + File.pathSeparator + classPath); } }