0

我有一个 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 或​​我使用了错误的功能?

4

2 回答 2

4

尝试:

execl("/bin/java", "java", "-jar", "/pathOfJAR/myjar.jar", NULL);

请注意,“/bin/java”应替换为您的 java 解释器的完整路径,最容易确定为which java.

于 2016-01-04T17:29:46.437 回答
-1

错误消息来自 java,而不是来自 execl。确保 jar 文件的清单具有 Main-Class 属性。

在从 C++ 程序调用之前,在命令行中运行 jar 并测试它是否可以工作。

Why do you want to build a C++ wrapper anyways? You may want to consider a shell wrapper as (if you need a wrapper at all).

于 2016-01-04T17:32:25.237 回答