< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java

Print this page

        

@@ -68,10 +68,11 @@
  * Implementation for the jlink tool.
  *
  * ## Should use jdk.joptsimple some day.
  */
 public class JlinkTask {
+    private static final boolean DEBUG = Boolean.getBoolean("jlink.debug");
 
     private static <T extends Throwable> void fail(Class<T> type,
             String format,
             Object... args) throws T {
         String msg = new Formatter().format(format, args).toString();

@@ -213,19 +214,25 @@
             if (options.saveoptsfile != null) {
                 Files.write(Paths.get(options.saveoptsfile), getSaveOpts().getBytes());
             }
 
             return EXIT_OK;
-        } catch (UncheckedIOException | PluginException | IOException | ResolutionException e) {
+        } catch (UncheckedIOException | PluginException | IllegalArgumentException |
+                 IOException | ResolutionException e) {
             log.println(taskHelper.getMessage("error.prefix") + " " + e.getMessage());
-            log.println(taskHelper.getMessage("main.usage.summary", PROGNAME));
+            if (DEBUG) {
+                e.printStackTrace(log);
+            }
             return EXIT_ERROR;
         } catch (BadArgs e) {
             taskHelper.reportError(e.key, e.args);
             if (e.showUsage) {
                 log.println(taskHelper.getMessage("main.usage.summary", PROGNAME));
             }
+            if (DEBUG) {
+                e.printStackTrace(log);
+            }
             return EXIT_CMDERR;
         } catch (Throwable x) {
             log.println(taskHelper.getMessage("main.msg.bug"));
             x.printStackTrace(log);
             return EXIT_ABNORMAL;
< prev index next >