--- old/test/gc/metaspace/ClassMetaspaceSizeInJmapHeap.java 2013-03-08 13:22:09.118417694 +0100 +++ new/test/gc/metaspace/ClassMetaspaceSizeInJmapHeap.java 2013-03-08 13:22:08.982417700 +0100 @@ -34,13 +34,43 @@ import java.io.File; import java.nio.charset.Charset; import java.util.List; +import java.util.ArrayList; + +class JMapLauncher { + private final ArrayList command = new ArrayList(); + + public JMapLauncher() { + command.add(JDKToolFinder.getJDKTool("jmap")); + } + + void setVMArgs(String ... args) { + for (String arg : args) { + command.add("-J" + arg); + } + } + + void setAction(String ... actions) { + for (String action : actions) { + command.add(action); + } + } + + String[] getCommand() { + return command.toArray(new String[command.size()]); + } +} public class ClassMetaspaceSizeInJmapHeap { public static void main(String[] args) throws Exception { + JMapLauncher jmap = new JMapLauncher(); + + jmap.setVMArgs(ProcessTools.getPlatformSpecificVMArgs()); + String pid = Integer.toString(ProcessTools.getProcessId()); + jmap.setAction("-heap", pid); ProcessBuilder pb = new ProcessBuilder(); - pb.command(JDKToolFinder.getJDKTool("jmap"), "-heap", pid); + pb.command(jmap.getCommand()); File out = new File("ClassMetaspaceSizeInJmapHeap.stdout.txt"); pb.redirectOutput(out);