Java SBT:获取所有传递的参数

Java SBT:获取所有传递的参数,java,scala,sbt,Java,Scala,Sbt,我希望掌握传递给sbt调用的所有参数,包括JVM参数,而不知道到底提供了哪些参数。可能吗 大概是这样的: sbt -Dsbt.ivy.home=/tmp/.ivy2 -Divy.home=/tmp/.ivy2 -J-XX:+CMSClassUnloadingEnabled 所以我想看看传递了哪些参数,在本例中,它们是系统属性sbt.ivy.home和ivy.home,以及JVM属性XX:+cmsclasssUnloadingEnabled。显然,我还需要相应的值 如果我能把这些都作为一个字符串

我希望掌握传递给
sbt
调用的所有参数,包括JVM参数,而不知道到底提供了哪些参数。可能吗

大概是这样的:

sbt -Dsbt.ivy.home=/tmp/.ivy2 -Divy.home=/tmp/.ivy2 -J-XX:+CMSClassUnloadingEnabled
所以我想看看传递了哪些参数,在本例中,它们是系统属性
sbt.ivy.home
ivy.home
,以及JVM属性
XX:+cmsclasssUnloadingEnabled
。显然,我还需要相应的值


如果我能把这些都作为一个字符串来处理就足够了,也许这更现实一些?

下面是一个更新的示例类,它可以打印出所有环境变量和其他JVM参数:

导入java.util.Scanner; 导入java.lang.management.ManagementFactory; 导入java.lang.management.RuntimeMXBean; 导入java.util.*

public class VMArgs{
    public static void main(String... args){
        Properties p = System.getProperties();
        p.list(System.out);

        RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
        List<String> arguments = runtimeMxBean.getInputArguments();
        System.out.println ("------------------arguments-----------------------------");
        System.out.println(arguments);
    }
}

这表明它确实按照预期捕获并输出了JVM参数。

不,这里没有列出
-J-XX:+cmsclasssUnloadingEnabled
内容。我已经用额外的代码片段更新了答案,用于提取JVMoptions@Haspemulator检查答案和输入参数。这对我有用。
------------------arguments-------------------
[-Xmx256m, -XX:+CMSClassUnloadingEnabled]