Review request: JDK-8159596 Add java --dry-run

Peter Levart peter.levart at gmail.com
Thu Jun 30 06:32:50 UTC 2016


Hi Mandy,

I'm sorry I haven't noticed this RFR before. Note that as currently 
implemented, --dry-run does not prevent user code to be executed in all 
cases. For example, the following test:

public class Test {
     static {
         System.out.println("Hello from <clinit>");
     }
     public static void main(String[] args) {
         System.out.println("Hello from main()");
     }
}

...when run with: "java -cp . Test", produces the following:

Hello from <clinit>
Hello from main()

...but when run with: "java --dry-run -cp . Test", it still produces the 
following:

Hello from <clinit>


In order to prevent user code from being executed, main class should not 
be initialized. But is it possible to check for the presence of a method 
in a class without initializing it? Maybe the check for the presence of 
main method could simply be dropped out of --dry-run?

Regards, Peter


On 06/24/2016 03:49 PM, Mandy Chung wrote:
> Webrev:
>    http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8159596/webrev.00/
>
> `java --dry-run` will create the VM, load the main, locate the static void main method, and exit (with 0) instead of executing the method.  As all module options are processed and the boot layer is created, this would be useful to sanity check the options and detect possible issues.
>
> Mandy
>



More information about the jigsaw-dev mailing list