使用Java和ant进行条件编译

时间:2010-08-09 14:44:54

标签: java ant conditional-compilation

我对我正在处理的软件有疑问。

我们正在通过JNA访问Windows系统调用,我们必须定义一些Windows结构(扩展JNA结构的Java类)才能访问它们。

应用程序必须使用32位和64位体系结构,但结构的问题是它们中的属性会根据系统体系结构(例如从int到long)发生变化。

使用ant在Java中进行条件编译a-la #ifdef有一种简单(且理智)的方法吗?有没有其他方法可以实现这种条件#ifdef?

我们正在考虑的另一种方法是创建一个通用接口,为32位和64位创建两个不同的结构,然后用一些if-else处理不同的情况。

感谢。

2 个答案:

答案 0 :(得分:4)

Ant条件条款不会执行

http://ant.apache.org/manual/Tasks/condition.html

<强>更新 我想我终于得到了你想做的事。查看javac man here我不认为Java编译器会让你这样做,无论你放在Ant中的条件如何。无论哪种方式,我都在stackoverflow上找到了关于确定系统架构的帖子,并在太阳论坛上发现了thread,您可能会发现这些帖子很有帮助。

答案 1 :(得分:0)

wwyt是Java语言的条件编译预处理器。它接受(注释掉)指令,如#if,#else,....等。它是一个Windows命令行工具,可以在调用Ant进行构建之前用作预处理器。 (并且在构建之后,它可以将已转换的文件恢复到其原始状态。)不确定这是否有帮助,只是让您知道。链接在这里:http://www.adarian.com/wwyt