code: public static String[] parse(String[] args)
          throws IOException
      {
          ListBuffer<String> newArgs = new ListBuffer<String>();
          for (int i = 0; i < args.length; i++) {
              String arg = args[i];
              if (arg.length() > 1 && arg.charAt(0) == '@') {
                  arg = arg.substring(1);
                  if (arg.charAt(0) == '@') {
                      newArgs.append(arg);
                  } else {
                      loadCmdFile(arg, newArgs);
                  }
              } else {
                  newArgs.append(arg);
              }
          }
          return newArgs.toList().toArray(new String[newArgs.length()]);
      }
docs: Process Win32-style command files for the specified command line
  arguments and return the resulting arguments. A command file argument
  is of the form '@file' where 'file' is the name of the file whose
  contents are to be parsed for additional arguments. The contents of
  the command file are parsed using StreamTokenizer and the original
  '@file' argument replaced with the resulting tokens. Recursive command
  files are not supported. The '@' character itself can be quoted with
  the sequence '@@'.