我正在開發一個通用的Android遊戲引擎,將在我的許多Android應用程序中用作基本系統。問題是,在我所有的Java文件目前,我有硬編碼這樣的包名:動態(編譯時生成的)Java程序包名稱
package com.example.mygameengine;
但因爲我想用我的通用遊戲引擎的代碼在許多不同的應用程序,我需要找到一種在編譯時指定Java文件的包名的方法,因爲我不想僅僅因爲包名稱的不同而保留我的Java源的多個副本。我想要一箇中央源代碼樹,根據我即將編譯的應用程序,包名應該可以動態更改。
那麼,有沒有辦法做這樣的事情:
package $(PACKAGE_NAME)
在Java源代碼其中$(PACKAGE_NAME)是在編譯時與真正的包名被取代?也許javac有一個選項,允許我爲它傳遞的文件指定一個包名稱,而不是從文件本身獲取它?請注意,我沒有使用Eclipse,而是準備了像ant和make這樣的命令行工具。
編輯:我不明白爲什麼這被標記爲重複。我問了一個關於Java語言中的「包」指令是否需要源代碼中的硬編碼字符串參數或者是否可以在編譯時使用編譯器指令來設置此包名的基本問題。這是相當於這個問題與此處鏈接的問題不同,它與Android構建系統密切相關的推測性「原始」問題。我的問題是關於Java語言的基礎知識,而不是關於Android構建系統。
這是一個非常糟糕的主意。只要在任何地方使用相同的軟件包名稱,並將相同的類捆綁到不同的應用程序中。這不像你將在每個應用程序中爲'java.util'使用不同的包名,是嗎? –
我希望你實際上沒有使用'com.example'作爲你的包前綴。 –