У меня есть проект cpp, который выполняет другую программу.
Вот мой тест:
int main() {
execl("java -jar /pathOfJAR/myjar.jar", NULL);
return 0;
}
Я запустил этот проект, и я ничего не получил.
Тогда я попробовал так:
execl("java", "-jar", "/pathOfJAR/myjar.jar");
Я получил ошибку:
Ошибка: не удалось найти или загрузить основной класс .pathOfJAR.myjar.jar
Тем не менее, я могу запустить команду в терминале:
java -jar /pathOfJAR/myjar.jar
и я могу получить правильный результат.
Как использовать функцию execl
или я использовал не ту функцию?
Пытаться:
execl("/bin/java", "java", "-jar", "/pathOfJAR/myjar.jar", NULL);
Обратите внимание, что «/ bin / java» должен быть заменен полным путем к вашему Java-интерпретатору, который легче всего определить с помощью which java
,
Сообщение об ошибке от Java, а не от Execl.
Убедитесь, что манифест файла JAR имеет атрибут Main-Class.
Перед вызовом из вашей программы на C ++ запустите jar в командной строке и проверьте, что он работает.
Почему вы хотите в любом случае создать оболочку C ++? Вы можете рассмотреть оболочку оболочки (если вам нужна оболочка вообще).