如何从32位C+;启动64位Java应用程序+;应用 < >我使用一个简单的C++程序在Windows 7 64位中运行可执行文件.jar文件。我期望它执行64位java,但它没有,它执行32位版本

如何从32位C+;启动64位Java应用程序+;应用 < >我使用一个简单的C++程序在Windows 7 64位中运行可执行文件.jar文件。我期望它执行64位java,但它没有,它执行32位版本,java,c++,32bit-64bit,windows-7-x64,Java,C++,32bit 64bit,Windows 7 X64,我正在使用以下代码: const char* javaw_path = "javaw.exe"; const std::string memory = "-Xmx" + user_configured_memory(); const char* jar = "-jar"; const char* jar_file = "\"HelloWorld.jar\""; const std::string cli_args = get_cli_args(ar

我正在使用以下代码:

const char* javaw_path     = "javaw.exe";
const std::string memory   = "-Xmx" + user_configured_memory();
const char* jar            = "-jar";
const char* jar_file       = "\"HelloWorld.jar\"";
const std::string cli_args =  get_cli_args(argc, argv);

const char* args[] = {javaw_path, memory.c_str(),
       jar, jar_file, cli_args.c_str(), static_cast<char*>(NULL)};    

const int ret = execvp(javaw_path, args);
当我在命令提示符下运行同一个命令时,事情正如我所期望的那样工作——java应用程序记录“amd64”


<>我如何改变启动程序来启动64位java?< /p> < p>如果C++程序是32位,就不能做。您必须编译C++应用程序作为64位,然后您可以从可执行文件调用另一个64位应用程序。您自己的路径包含java 64位目录,而32位应用程序继承了包含java 32位目录的路径,因此它会首先查找32位javaw.exe并执行它。您能否尝试明确表示要运行哪个javaw.exe,例如
C:\\Program Files\\java\\jdk1.7.0\\bin\\javaw.exe
System.getProperty("os.arch")