查找可以从CMD

时间:2015-07-07 07:24:47

标签: c++ windows visual-studio

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

由于

2 个答案:

答案 0 :(得分:1)

此代码实际上是从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

我猜你不得不以某种方式处理这些暧昧,但我想我会想到你为什么这么做。

答案 1 :(得分:0)

您可以使用makro并使用

进行编译
if (!(typeof MochaWeb === 'undefined')){
  MochaWeb.testOnly(function(){
    describe("Meteor Method: Upldating a player", function(){

      // define the handler as the method we are testing
      // May be this needs to be a before each.
      var handler = Meteor.call("addPoints");
      var userId = "1";
      var points = 5;

      describe("Updating a player", function() {
        it("Should Add a point", function(done){
          handler(userId, points, function() {
            assert(handler.calledOnce);

            // a way here of asserting the callback is what we expect,
            // in this case we expect a return of 1

            done();
          });
        });
      });

    });
  });
}