54 import java.util.zip.GZIPInputStream; |
54 import java.util.zip.GZIPInputStream; |
55 import java.util.zip.GZIPOutputStream; |
55 import java.util.zip.GZIPOutputStream; |
56 |
56 |
57 /** Command line interface for Pack200. |
57 /** Command line interface for Pack200. |
58 */ |
58 */ |
|
59 |
|
60 @SuppressWarnings({"removal"}) |
59 class Driver { |
61 class Driver { |
60 private static final ResourceBundle RESOURCE = |
62 private static final ResourceBundle RESOURCE = |
61 ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); |
63 ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); |
|
64 private static boolean suppressDeprecateMsg = false; |
62 |
65 |
63 public static void main(String[] ava) throws IOException { |
66 public static void main(String[] ava) throws IOException { |
64 List<String> av = new ArrayList<>(Arrays.asList(ava)); |
67 List<String> av = new ArrayList<>(Arrays.asList(ava)); |
65 |
68 |
66 boolean doPack = true; |
69 boolean doPack = true; |
67 boolean doUnpack = false; |
70 boolean doUnpack = false; |
68 boolean doRepack = false; |
71 boolean doRepack = false; |
69 boolean doZip = true; |
72 boolean doZip = true; |
|
73 suppressDeprecateMsg = av.remove("-XDsuppress-tool-removal-message"); |
70 String logFile = null; |
74 String logFile = null; |
71 String verboseProp = Utils.DEBUG_VERBOSE; |
75 String verboseProp = Utils.DEBUG_VERBOSE; |
72 |
76 |
73 { |
77 { |
74 // Non-standard, undocumented "--unpack" switch enables unpack mode. |
78 // Non-standard, undocumented "--unpack" switch enables unpack mode. |
81 av.remove(0); |
85 av.remove(0); |
82 doPack = false; |
86 doPack = false; |
83 doUnpack = true; |
87 doUnpack = true; |
84 break; |
88 break; |
85 } |
89 } |
|
90 } |
|
91 |
|
92 if (!suppressDeprecateMsg) { |
|
93 printDeprecateWarning(doPack, System.out); |
86 } |
94 } |
87 |
95 |
88 // Collect engine properties here: |
96 // Collect engine properties here: |
89 Map<String,String> engProps = new HashMap<>(); |
97 Map<String,String> engProps = new HashMap<>(); |
90 engProps.put(verboseProp, System.getProperty(verboseProp)); |
98 engProps.put(verboseProp, System.getProperty(verboseProp)); |
393 |
401 |
394 return tmpfile.toFile(); |
402 return tmpfile.toFile(); |
395 } |
403 } |
396 |
404 |
397 private static |
405 private static |
|
406 void printDeprecateWarning(boolean doPack, PrintStream out) { |
|
407 String prog = doPack ? "pack200" : "unpack200"; |
|
408 out.println(MessageFormat.format(RESOURCE.getString(DriverResource.DEPRECATED), prog)); |
|
409 } |
|
410 |
|
411 private static |
398 void printUsage(boolean doPack, boolean full, PrintStream out) { |
412 void printUsage(boolean doPack, boolean full, PrintStream out) { |
399 String prog = doPack ? "pack200" : "unpack200"; |
413 String prog = doPack ? "pack200" : "unpack200"; |
400 String[] packUsage = (String[])RESOURCE.getObject(DriverResource.PACK_HELP); |
414 String[] packUsage = (String[])RESOURCE.getObject(DriverResource.PACK_HELP); |
401 String[] unpackUsage = (String[])RESOURCE.getObject(DriverResource.UNPACK_HELP); |
415 String[] unpackUsage = (String[])RESOURCE.getObject(DriverResource.UNPACK_HELP); |
402 String[] usage = doPack? packUsage: unpackUsage; |
416 String[] usage = doPack? packUsage: unpackUsage; |
404 out.println(usage[i]); |
418 out.println(usage[i]); |
405 if (!full) { |
419 if (!full) { |
406 out.println(MessageFormat.format(RESOURCE.getString(DriverResource.MORE_INFO), prog)); |
420 out.println(MessageFormat.format(RESOURCE.getString(DriverResource.MORE_INFO), prog)); |
407 break; |
421 break; |
408 } |
422 } |
|
423 } |
|
424 // Print a warning at the end |
|
425 // The full help page is long, the beginning warning could be out of sight |
|
426 if (full && !suppressDeprecateMsg) { |
|
427 printDeprecateWarning(doPack, out); |
409 } |
428 } |
410 } |
429 } |
411 |
430 |
412 private static |
431 private static |
413 String getZipComment(String jarfile) throws IOException { |
432 String getZipComment(String jarfile) throws IOException { |