У меня есть googled для этого, но результаты либо старше 10 лет, и не объясняют, что такое JNI, или это единственный подход, или результаты для C++ или C#. Итак, вот мой вопрос:Как запустить java-программу из c-программы?
Как запустить программу Java из программы на языке C, используя следующий код в качестве примера? Какие конкретные изменения я внес в следующий код, чтобы программа C успешно вызывала java-программу с параметрами?
В терминале CentOS, я в состоянии успешно запустить программу Java, когда я введите в командной строке:
java -cp . my.package.SomeClass 1 2 3
Аналогично, из той же папки в терминале, я могу успешно запустить программу C, когда я введите в командной строке:
./hello
код для hello.c
является:
#include <stdio.h>
main() {
printf("Hello World from C!\n");
}
Как мне изменить код для hello.c
, чтобы он также запускал my.package.SomeClass
с параметрами 1 2 3
?
Например, как я выполняю следующее, но без метания ошибок:
#include <stdio.h>
main() {
printf("Hello World from C!\n");
java -cp . my.package.SomeClass 1 2 3 //What is the right syntax here?
}
EDIT
Ради будущих читателей этого, и, чтобы избежать избыточной сообщения, пожалуйста, также укажите в своем ответе, как назвать метод, например SomeClass.someMethod(1,2,3);
Откат, когда вы полностью изменили вопрос, предоставив существующие ответы неполными (включая принятый). – Olaf
На редактирование отвечают ответы ниже, в которых указывается требуемая библиотека, и указывается на дальнейшие исследования. Сохранение редактирования поможет таким людям, как я, которые вынуждены писать краткий код C и нуждаются в кратком обзоре. – CodeMed
Довольно высокомерное ваше C-трески. Вы должны сначала подумать, можете ли вы оскорбить людей, которые на самом деле предпочитают C для своих проектов. Распространение вопроса противоречит политике SO. – Olaf