我有一个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
或我使用了错误的函数?
答案 0 :(得分:4)
尝试:
execl("/bin/java", "java", "-jar", "/pathOfJAR/myjar.jar", NULL);
请注意" / bin / java"应该用你的java解释器的完整路径替换,最容易用which java
确定。
答案 1 :(得分:-1)
错误消息来自java,而不是来自execl。 确保jar文件的清单具有Main-Class属性。
在从C ++程序调用之前,在命令行中运行jar并测试它是否有效。
为什么要构建C ++包装器呢?你可能想要考虑一个shell包装器(如果你需要一个包装器)。