如何在 C++ 中执行程序 Linux
How to execute a program in C++ Linux
我有一个 cpp 项目,它执行另一个程序。
这是我的测试:
int main() {
execl("java -jar /pathOfJAR/myjar.jar", NULL);
return 0;
}
我运行这个项目,我一无所获。
然后我这样尝试:
execl("java", "-jar", "/pathOfJAR/myjar.jar");
我收到一个错误:
Error: Could not find or load main class .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 包装器视为(如果您完全需要包装器的话)。
我有一个 cpp 项目,它执行另一个程序。
这是我的测试:
int main() {
execl("java -jar /pathOfJAR/myjar.jar", NULL);
return 0;
}
我运行这个项目,我一无所获。
然后我这样尝试:
execl("java", "-jar", "/pathOfJAR/myjar.jar");
我收到一个错误:
Error: Could not find or load main class .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 包装器视为(如果您完全需要包装器的话)。