我需要在我的C ++应用程序中找到javaw的绝对路径。
可以从命令提示符运行javaw,我可以使用where javaw获取其路径,但是我需要C ++中的路径
如何在C ++应用程序中找到javaw的路径?

谢谢

最佳答案

此代码从最上面的答案逐字复制粘贴到How to execute a command and get output of command within C++?,然后添加了来自main的调用:

#include <string>
#include <iostream>
#include <stdio.h>

std::string exec(char* cmd) {
    FILE* pipe = _popen(cmd, "r");
    if (!pipe) return "ERROR";
    char buffer[128];
    std::string result = "";
    while (!feof(pipe)) {
        if (fgets(buffer, 128, pipe) != NULL)
            result += buffer;
    }
    _pclose(pipe);
    return result;
}

int main()
{
    std::cout << exec("where javaw") << std::endl;
    return 0;
}


这是它在我的Windows 7计算机上打印的内容:

C:\Windows\System32\javaw.exe
C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javaw.exe


我想您必须以某种方式处理歧义,但我想我知道您为什么要这样做。

09-05 21:51