2

我正在使用的软件有问题。

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

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

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

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

谢谢。

4

2 回答 2

4

Ant 条件子句会不会做

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

更新: 我想我终于得到了你想要做的事情。看看这里javac的人,我不认为 Java 编译器会让你这样做,不管你在 Ant 中设置的条件如何。无论哪种方式,我都在stackoverflow上找到了关于确定系统架构的帖子和sun论坛上的一个帖子,您可能会觉得有帮助。

于 2010-08-09T14:50:28.160 回答
0

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

于 2011-02-02T05:43:11.460 回答