[preview] Adding java.lang.Runtime.getVMArguments() method

Roger Riggs roger.riggs at oracle.com
Wed Nov 25 02:53:40 UTC 2015


The ProcessHandle.current().info().arguments() has the operating 
system's view
of the command and arguments.  Which may differ from what is passed to 
main[] args.
Perhaps for current() it should be special cased to exactly and always 
match main(args)
but that's a different question.

If the desired set of arguments is different from what is typed on the 
line or is passed to main, the perhaps it should remain in RuntimeMXBean.
A method on Runtime to return the arguments would be understood to be
more general and match either main(args) or the true command line as typed.


On 11/24/15 9:24 PM, David Holmes wrote:
> On 25/11/2015 10:06 AM, Mandy Chung wrote:
>>> On Nov 24, 2015, at 3:45 PM, Peter Levart <peter.levart at gmail.com> 
>>> wrote:
>>> On 11/24/2015 05:49 PM, Jaroslav Bachorik wrote:
>>>> Hi,
>>>> while working on an issue to clean up a code in java.base module 
>>>> using reflection to access RuntimeMXBean (from java.management 
>>>> module) in order to get hold of the VM arguments (yes, this won't 
>>>> work with module boundaries in place) it was pointed out that this 
>>>> functionality should be available in java.base without going 
>>>> through JMX.
>>> Isn't the following JDK9 API already providing that:
>>> ProcessHandle.current().info().arguments();
>> This is what I also start going after.
>> The launcher does some job on the command-line before passing to the 
>> VM, e.g. @argfile support that expands the options specified in the 
>> file, add -Djava.class.path and some system properties passing to the 
>> VM, take out -J if they are JDK tool launchers etc.
> I haven't looked at the two APIs but the command-line is potentially 
> very different from the "VM arguments". The VM can get its arguments 
> from the command-line, the launcher, options file and environment 
> variables.
> David
>> Mandy

More information about the core-libs-dev mailing list