2016-04-05 107 views
0

我想知道所有傳遞給sbt調用的參數,包括JVM參數,但不知道提供了哪些參數。那可能嗎?SBT:獲取所有傳遞的參數

事情是這樣的:

sbt -Dsbt.ivy.home=/tmp/.ivy2 -Divy.home=/tmp/.ivy2 -J-XX:+CMSClassUnloadingEnabled 

所以我想看到哪個參數進行傳遞,在這種情況下,他們是系統屬性sbt.ivy.homeivy.home,和JVM屬性XX:+CMSClassUnloadingEnabled。顯然,我也需要相應的值。

如果我能把這一切全部當作單個字符串就足夠了,也許它更現實?

回答

0

這裏是一個更新的例子類,它可以打印出所有的環境變量和附加JVM參數:

進口java.util.Scanner的; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import 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); 
    } 
} 

在你的評論中,你提到:-J-XX:+CMSClassUnloadingEnabled。我認爲這是一個錯字,-J無效。參數應該是-XX:+CMSClassUnloadingEnabled

如果我與-Xmx256m -XX:+CMSClassUnloadingEnabled JVM ARG運行上面的程序,輸出(忽略系統屬性):

------------------arguments------------------- 
[-Xmx256m, -XX:+CMSClassUnloadingEnabled] 

這表明它採集和輸出的JVM ARGS預期。

+0

沒有,'-J-XX:+ CMSClassUnloadingEnabled' thingy沒有在那裏列出。 – Haspemulator

+0

我已經用更多的代碼片段更新瞭解答jvm選項的答案 – pczeus

+0

@Haspemulator檢查答案和輸入參數。它爲我工作。 – pczeus