Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
JNI и Java: ant вызов make или make вызов ant?
Я как раз собираюсь совершить свое первое путешествие в мир JNI (Java Native Interface), чтобы предоставить уведомления об изменении файловой системы от специфичного для платформы кода C/C++ до Java. То есть, если кто-то не предложит какую-то блестящую библиотеку для этого, которую я пропустил.
Будучи новичком в JNI, мне удалось найти много документации на стороне интерфейса и стороне генерации библиотеки, но я не нашел много о создании родной библиотеки.
У меня есть существующая сборка на основе ant для уже существующего источника Java, поэтому я пытаюсь решить, должен ли я получить ant для вызова make для создания библиотеки или лучше всего получить make для вызова ant после создания библиотеки?
Ни один из вариантов не выскакивает как ужасно хороший, но оба кажутся лучше, чем пытаться заставить ant вызвать компилятор для компиляции кода и создания библиотеки напрямую.
В качестве более простой альтернативы JNI, попробуйте JNA: https://jna.dev.java.net/, может решить эту проблему для вас и быть проще (предполагая, что он может делать то, что вы хотите).
Мне категорически не нравится из-за его неявных правил и лечении whitespace. Лично я бы использовал cpp tasks ( http://ant-contrib.sourceforge.net/cpptasks/index.html ) для выполнения своей компиляции C. Они не так гибки, как make, но они также гораздо менее сложны, и это будет означать, что вам не придется обременять своих разработчиков обучением make.
Я сейчас работаю над чем-то подобным. Имейте в виду, что использование swig из swig.org часто проще, поскольку он генерирует заглушки для собственной библиотеки для вас.
Короткий ответ на ваш вопрос заключается в том, что файл ant должен запускать файл make после того, как библиотека java уже была собрана, поскольку собственная библиотека зависит от заголовка swig, сгенерированного из файлов класса java.
Если вы очень хорошо знакомы с ant и не хотите изучать новую систему, то http://ant-contrib.sourceforge.net/cpptasks/index.html , также связанный другим плакатом, позволит вам построить c++ в ant.
Я бы полностью пропустил JNI и использовал внешнюю программу, которая пишет уведомления на стандартном выходе. Java может затем просто считывать из выходного потока программы и генерировать любое событие, которое необходимо. JNI - это слишком много работы, если все, что вы хотите, - это отправлять простые уведомления.
Кроме того, на Linux вы можете просто запустить "inotifywait" (с некоторыми подходящими параметрами см. "man inotifywait").
Вы также можете попробовать задачи terp C++ в Codemesh . Они не являются свободными, но они предлагают высокий уровень абстракции в сочетании с возможностью обнаружения / указания компилятора C++ и возможностью итерации по более чем одной архитектуре компилятора/процессора/конфигурации компилятора для мультиплатформенных сборок.