找到可执行文件的绝对路径,可以从CMD运行

Find absolute path of executable that can be run from CMD

本文关键字:CMD 运行 路径 可执行文件      更新时间:2023-10-16

我需要在c++应用程序中找到javaw的绝对路径。
javaw可以从命令提示符&我可以用where javaw得到它的路径但是我需要c++中的路径
我如何在我的c++应用程序中找到javaw的路径?

谢谢

这段代码是从顶部的答案复制粘贴到如何在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:WindowsSystem32javaw.exe
C:Program Files (x86)Javajdk1.7.0_55binjavaw.exe

我猜你不得不处理模糊的问题,但我想我明白你为什么要这么做了。

您可以使用makro并使用

进行编译
-DJAVAW_PATH=`where javaw`