几天前,我不得不将 C++ 文件引入 Java 项目时遇到了一个问题。它首先需要测量 Java 进程的 CPU 使用率,然后决定采用 JNI 调用用 C 编写的本机库(Unix 机器上的共享库)。问题是找到一个合适的位置将 C 文件放在仅包含 Java 文件的源存储库(顺便说一下 Clearcase)中。
我想到了几个替代方案:
(a) 创建一个单独的目录,用于将 C 文件(具体来说,一个 .h 文件和一个 .c 文件)放在源代码库的顶部,例如:
/vobs/myproduct/javasrc /vobs/myproduct/cppsrc
我不喜欢这样,因为我只有两个 C 文件,而且像这样在语言级别拆分源代码库似乎很奇怪。如果项目的大部分内容或多或少都是用 C++ 和 Java 编写的,这可能没问题。
(b) 将 C 文件放入使用它的 Java 包中。
我在 /vobs/myproduct/com/mycompany/myproduct/util/ 中有调用 Java 类,C 文件也放在那里。
我也不喜欢这个,因为我认为 C 文件不属于 Java 包。
以前有没有人解决过这样的问题?一般来说,在组织混合两种或多种语言的代码库时,应该遵循什么好的策略?
更新:我没有任何计划在我的项目中使用任何 C 或 C++,也许是一些 Jython,但你永远不知道我的客户何时需要一个只能通过使用 C 来解决或最好通过使用 C 来解决的功能。