将预编译指令传递给javac?

时间:2010-03-03 14:54:53

标签: java javac

我正在编写桌面和j2me应用程序。我在程序中有调试语句。目前为了避免那些被编译我使用如下。我们这样做是为了减少jar的大小。 (专门针对移动设备)

ConstantFile.java
Boolean ConstantFile.DebugEnabled = false;

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

但这有点难以编码。有没有像C这样的替代方案我们有预编译的指令。注释可以帮到这里吗?或者其他我应该寻找的东西?

3 个答案:

答案 0 :(得分:2)

不,Java中没有预编译,但是不使用您当前使用的常量文件,请尝试使用Log4j或其他支持isDebugEnabled()操作的日志包。这将避免硬编码支持配置文件或VM参数。

答案 1 :(得分:0)

注释可以工作,或者您可以查看AOP。 AOP允许您在特定点自动将代码插入到方法中。无论哪种方式都可以得到你想要的东西。

答案 2 :(得分:0)

我得到了我想要的确切答案。预处理。类似于hatchetman82建议,有wtkpreprocess任务可用。它专门为移动设备开发。 (虽然它也可以用于其他java部分。)它完美无缺。它注释掉行,因此字节代码仍然较轻。