2012-09-07 88 views
2

我想創建一個類似於android的R的自動生成的資源文件。我知道如何解析和創建文件,並基本上創建一個新的類文件。我不知道該怎麼做的是啓動這個自動生成過程。因此,使用eclipse(儘管如果有辦法以不可知的方式實現這種情況,我更喜歡它),那麼如何觸發自動生成會話來讀取屬性文件並創建.java文件保存靜態變量和解析文件中的「鍵」,然後我可以從我的代碼中引用?如何從資源文件創建自動生成的枚舉?

+0

如果你只是想改變資源(屬性文件後一種方式來觸發生成),你可以使用一個螞蟻建設者,它調用你的發電機。右鍵單擊項目 - >屬性 - >生成器 - >新建 – Andreas

回答

2

幾個如何生成java源文件的例子have already been provided。讀取屬性文件並調用其中一個API應該相對容易。

要觸發代碼生成過程,您需要添加自定義生成步驟。用螞蟻,只需add a custom task。然後將其連接到Eclipse Builder:項目屬性 - >構建器 - >新建。

隨後,Eclipse應該自己查找並刷新此文件。如果沒有,請檢查您的配置:首選項 - >常規 - >工作區 - >找到「刷新使用原生鉤子或輪詢」和類似的,並檢查它們。 (請注意,我不能100%確定這最後一部分可以工作。)

阻力最小的路徑是單獨運行此構建步驟。如果你的屬性文件沒有經常改變,那麼它不應該是一個大問題。這與您使用協議緩衝區,JAXB,wsdl2java等時的操作類似。如果您希望一切都像R.java一樣神奇地工作,那麼您可能必須做一些更復雜的操作:

- 嘗試使用Eclipse Builder選項來控制何時執行Ant任務 - 如果您無法弄清楚,那麼我會查看Eclipse如何連接上述項目(即Protocol Buffers,JAXB, WSDL2Java的,等等) - 看看ADT定製PreCompilerBuilder類 - 退房build-helper-plugin

+0

謝謝你。正是我需要的。爲了看看我能否爲未來提供一些更多的細節,我會再給幾天賞金,但在所有可能的情況下,這都是你的。 – AedonEtLIRA

+0

如果ant爲你工作,那麼一旦你有ant任務添加一個建設者到eclipse項目(項目屬性,建設者,添加螞蟻)。選擇任務和控制執行時間有很多選項。在過去,我已經能夠設置這樣一個單一的目錄進行監視的變化,然後導致螞蟻任務運行(做jsmin自動)。 – philwb

+0

你說得對,我似乎忘記了包含關於Eclipse Builders的信息。爲了完整性,我添加了它。 – jtoberon

0

通常使用ResourceBundle創建一個對象,允許您通過鍵查找屬性。您可以通過Java Trail瞭解ResourceBundle

基本的想法是你有一個.properties擴展名的文本文件。您將ResourceBundle對象指向該文件。然後,您可以使用getString()getObject()方法將密鑰傳遞給所需的屬性。這就是它的全部。您只需在啓動程序時(或在需要之前的某個時間)加載ResourceBundle

如果你創建你自己的,有一個ResourceBundle作爲成員值類,你可以用一個簡單的代碼有點像這樣有一個簡單get()方法來獲得屬性值:

public String get(String aString) 
    {   
    String sVal = null; 

    try 
    { 
     sVal = (String)myProperties.getObject(aString); 
    } 
    catch (MissingResourceException e) 
    { 
     log.debug("Missing Property Value: "+aString); 
    } 

    return sVal; 
    } 

希望這很有用。

+0

謝謝,但不是我在找什麼。我正在尋找最終的不可實例化的類,它將被自動生成以包含來自資源文件的密鑰,然後我可以自動創建.java文件。 – AedonEtLIRA

+0

對不起,當我看到你想從屬性文件中讀取時,我一定已經跳過了槍。最好的方法是使用'ResourceBundle'。 – Ruminator