我有一个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++包装器?您可能需要将shell包装器视为(如果您需要包装器的话)。