2010-03-03 70 views
1

我在寫一個桌面和j2me應用程序。我在程序中有調試語句。目前爲了避免那些得到編譯我使用如下。我們正在這樣做,以減少罐子的大小。 (特別針對手機)將預編譯指令傳遞給javac?

ConstantFile.java 
Boolean ConstantFile.DebugEnabled = false; 

if(ConstantFile.DebugEnabled) { 
log.debug("msg"); 
} 

但是這是一種硬編碼。有沒有像C這樣的替代方案,我們有預先編譯的指令。註解可以在這裏幫助嗎?或者我應該尋找的其他東西?

回答

0

我有我想要的確切答案。預處理。類似hatchetman82的建議,有wtkpreprocess任務可用。它專門爲手機開發。 (雖然它也可以用於其他Java部分。)它完美地工作。它註釋行,所以字節碼保持較輕。

2

不,在Java中沒有預編譯,但是不是像當前使用的那樣使用常量文件,而是嘗試使用Log4j或其他支持isDebugEnabled()操作的其他日誌記錄軟件包。這將避免硬編碼而支持配置文件或VM參數。

0

註釋可以工作,或者你可以看AOP。 AOP將允許您在特定點自動將代碼插入到您的方法中。無論哪種方式應該得到你想要的。