36 public static void main(String[] args) throws Exception {
37 String classpath = args[0];
38 String classlist = args[1];
39 String archive = args[2];
40 String heapsize = args[3];
41
42 // Prepare the classlist
43 FileOutputStream fos = new FileOutputStream(classlist);
44 PrintStream ps = new PrintStream(fos);
45
46 for (int i=4; i<args.length; i++) {
47 ps.println(args[i].replace('.', '/'));
48 }
49 ps.close();
50 fos.close();
51
52 // Dump the archive
53 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
54 heapsize,
55 "-XX:+IgnoreUnrecognizedVMOptions",
56 "-XX:+UseAppCDS",
57 "-cp", classpath,
58 "-XX:ExtraSharedClassListFile=" + classlist,
59 "-XX:SharedArchiveFile=" + archive,
60 "-Xshare:dump",
61 "-Xlog:gc+heap+coops",
62 "-Xlog:cds");
63
64 OutputAnalyzer output = new OutputAnalyzer(pb.start());
65 System.out.println("[stdout = " + output.getStdout() + "]");
66 System.out.println("[stderr = " + output.getStderr() + "]");
67 output.shouldContain("Loading classes to share");
68 output.shouldHaveExitValue(0);
69 }
70 }
|
36 public static void main(String[] args) throws Exception {
37 String classpath = args[0];
38 String classlist = args[1];
39 String archive = args[2];
40 String heapsize = args[3];
41
42 // Prepare the classlist
43 FileOutputStream fos = new FileOutputStream(classlist);
44 PrintStream ps = new PrintStream(fos);
45
46 for (int i=4; i<args.length; i++) {
47 ps.println(args[i].replace('.', '/'));
48 }
49 ps.close();
50 fos.close();
51
52 // Dump the archive
53 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
54 heapsize,
55 "-XX:+IgnoreUnrecognizedVMOptions",
56 "-cp", classpath,
57 "-XX:ExtraSharedClassListFile=" + classlist,
58 "-XX:SharedArchiveFile=" + archive,
59 "-Xshare:dump",
60 "-Xlog:gc+heap+coops",
61 "-Xlog:cds");
62
63 OutputAnalyzer output = new OutputAnalyzer(pb.start());
64 System.out.println("[stdout = " + output.getStdout() + "]");
65 System.out.println("[stderr = " + output.getStderr() + "]");
66 output.shouldContain("Loading classes to share");
67 output.shouldHaveExitValue(0);
68 }
69 }
|