2010-04-07 31 views
2

對不起,如果問題標題混淆。讓我進一步解釋。如何更改eclipse中的代碼設置

我正在用Eclipse構建一個Java項目。在我的Java產品中,我有條件確定產品中包含哪些代碼,並依靠靜態最終常量進行死剝離。

class BuildFlags 
{ 
    public static final boolean SOME_FLAG = true; // Need to set this programmatically 
} 

class SomeOtherClass 
{ 
    public void someMethod() 
    { 
     if (BuildFlags.SOME_FLAG) 
     { 
      // flag specific code 
     } 
    } 
} 

我的問題是如何改變BuildFlags.SOME_FLAG(上圖),這樣我可以在不改變源運行一個特殊的構建?有什麼方法可以將標誌傳遞給jvm(從eclipse),然後我可以通過編程方式訪問該標誌嗎?

回答

3

您可以通過設置系統屬性值(請參閱docs on java)然後從System.getProperty()獲取。通過編輯運行配置,可以在Eclipse中設置系統屬性。

請注意,屬性設置爲字符串 - 您必須將其轉換爲布爾值。

+0

考慮從一個屬性文件把你的屬性,而不是通過命令行。通過這種方式,您可以存儲屬於一組的設置組。此外,您不必記住設置,因爲它們存儲在文件中。 – 2010-04-07 19:48:30

+0

如果靜態最終標誌的'死代碼剝離'屬性是一個要求,我不認爲這會工作... – 2010-04-07 20:32:31

+0

@Kevin你不能有一個編譯器優化與動態變化的條件工作,所以沒有解決方案會工作 – 2010-04-07 20:46:47

0
java -DsomeFlag=true <class> 

String flag = System.getProperty("someFlag"); 
相關問題