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]