Courtesy of education.oracle.com
Which command-line invocation will produce the output found?
a) java -Dx=y x y z
b) java -Px=y x y z
c) java -Dx=y x x y z
d) java -Px=y x x y z
e) java x x y z -Dx=y
f) java x x y z -Px=y
Option C is correct. -D sets a property and args[1] is the second argument (whose value is y)
This is what I understand:
1. The program is assigning the system property of "x" to
String
2. When the runtime environment is invoked with c)
java -Dx=y x x y z , it is setting the system property of "x" to "y". Then the program x is invoked. Next, args[0] get the value of "x". Then, args[1] gets the value of "y". This value of "y" is equal to the system value of "x", which is "y". Hence, "found" is printed.
Here is my question
When I invoke the runtime environment with
java x x y z -Dx=y
or
java x x y z -Px=y
Why do I get the following runtime error:
Exception in thread "main" java.lang.NullPointerException
at x.main(x.java:4)
We are invoking the runtime environment with keyword "java", the name of the program "x", and the arguments that follow.
Please guide.