几天前,当我不得不将C ++文件引入Java项目时,我遇到了一个问题。它首先需要测量Java进程的CPU使用率,并且决定使用JNI来调用用C编写的本机库(Unix机器上的共享库)。问题是找到一个合适的位置将C文件放入源存储库(顺便说一下Clearcase),它只包含Java文件。
我想到了几个选择:
(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解决的功能。
发布于 2018-10-09 11:43:14
我个人将两者分开,甚至可能分成他们自己独立的项目,但那时他们都是分开的事情,就像你不会在同一个班级中放入两个不同的概念一样。当它们都触及相同的概念区域时,它会变得更加模糊。当然,在构建代码时总会出现问题,例如是否可以将其置于结构b)中,而不需要做各种各样的技巧来编译代码?是否计划在项目中使用更多C,在这种情况下,如果您遵循相同的模式,C文件将遍布您的项目...
发布于 2018-10-09 13:06:26
为什么它看起来很奇怪?考虑这个项目:
PROJECT1的\ src \ java中
PROJECT1的\ src \ CPP
PROJECT1的\ src \蟒蛇
或者,如果决定将事物拆分为模块:
PROJECT1 \模块1的\ src \ java中
PROJECT1 \模块1的\ src \ CPP
PROJECT1 \模块2的\ src \ java中
PROJECT1 \模块2的\ src \蟒蛇
我想这是个人品味的问题,但上述结构相当普遍,我认为一旦你习惯了它就会很好用。
https://stackoverflow.com/questions/-100000831
复制相似问题