Я столкнулся с проблемой несколько дней назад, когда мне пришлось вводить файлы C ++ в проект Java. Это началось с необходимости измерить загрузку процессора Java-процессом, и было решено, что нужно использовать JNI для вызова нативной библиотеки (общей библиотеки на Unix-машине), написанной на C. Проблема заключалась в том, что найти подходящее место для размещения файлов C в исходном хранилище (в частности, в Clearcase), которое состоит только из файлов Java.
Я подумал о паре альтернатив:
(a) Создайте отдельный каталог для размещения файлов C (в частности, одного .h файла и одного .c файла) в верхней части исходной базы, например:
/ ВОБ / MyProduct / javasrc
/ ВОБ / MyProduct / cppsrc
Мне это не понравилось, потому что у меня есть только два файла C, и было очень странно разделить исходную базу на уровне языка, как это. Если бы существенные части проекта были написаны более или менее одинаково на C ++ и Java, это было бы хорошо.
(b) Поместите файлы C в пакет Java, который их использует.
У меня есть вызывающие Java-классы в / vobs / myproduct / com / mycompany / myproduct / util /, и файлы C также находятся там.
Мне это тоже не понравилось, потому что я думаю, что файлы C просто не входят в пакет Java.
Кто-нибудь решал такую проблему раньше? Вообще, какой хорошей стратегии следует придерживаться при организации кодовой базы, которая смешивает два или более языков?
Обновление: у меня нет никакого плана использовать какой-либо C или C ++ в моем проекте, возможно, некоторые Jython, но вы никогда не знаете, когда моим клиентам нужна функция, которая может быть решена только с помощью C или лучше всего решается с помощью C .