How to get VM arguments from inside of Java application?
java, jvm, jvm-arguments
Solution
With this code you can get the JVM arguments:
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
...
RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimeMxBean.getInputArguments();
Problem
I need to check if some option that can be passed to JVM is explicitly set or has its default value. To be more specific: I need to create one specific thread with higher native stack size than the default one, but in case the user wants to take care of such things by himself by specifying the `-Xss` option I want to create all threads with default stack size (which will be specified by user in -Xss option). I've checked classes like `java.lang.System` and `java.lang.Runtime`, but these aren't giving me any useful information about VM arguments. Is there any way to get the information I need?