用Java和ant进行条件编译

用Java和ant进行条件编译,java,ant,conditional-compilation,Java,Ant,Conditional Compilation,我正在使用的软件有问题 我们通过JNA访问Windows系统调用,我们必须定义一些Windows结构(扩展JNA结构的Java类)才能访问它们 应用程序必须使用32位和64位体系结构,但这些结构的问题在于,它们中的属性会根据系统体系结构而变化(例如,从int到long) 使用ant在Java中进行条件编译a-la#ifdef是否有一种简单(且合理)的方法?有没有其他方法可以实现这种有条件的ifdef 我们正在考虑的另一种方法是创建一个通用接口,为32位和64位创建两种不同的结构,然后使用if-e

我正在使用的软件有问题

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

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

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

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


谢谢。

蚂蚁条件条款不行吗

更新:
我想我终于明白你的意思了。看看
javac
man,我不认为Java编译器会让你这么做,不管你在Ant中设置了什么条件。不管怎样,我在sun论坛上找到了一篇关于确定系统架构的帖子和一篇你可能会觉得有用的文章。

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

+1在我之前到达那里。另外,在build target.Hmmm中使用if参数,我并不是在摸索如何使用它在“编译”时禁用Java文件中的部分代码。我最好看看如何使用任务。谢谢你指点我。我不熟悉ifdef的工作。您是否试图根据您编译的体系结构将程序代码中的int改为long?@maffel:是的,这就是我想要实现的目标。@maffel:感谢其他链接,我们将尝试查看他们是否以这种方式实现了某些目标。但我想我必须在代码中使用一些if-else来处理它。