一千萬個為什麽

搜索

如何從32位C ++應用程序啟動64位Java應用程序?

我正在使用一個簡單的C ++程序在Windows 7 64位中運行可執行的.jar文件。我希望這能執行64位java,但它沒有,它執行32位版本。

我正在使用以下代碼:

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(NULL)};    

const int ret = execvp(javaw_path, args);

當java應用程序啟動時,它會按預期將機器體系結構記錄為“x86”而不是“amd64”。我通過檢查獲得此信息:

System.getProperty("os.arch")

當我從命令提示符運行相同的命令時,事情按我的預期工作 - Java應用程序記錄'amd64'。

如何更改啟動程序以啟動64位java?

最佳答案

如果您的C ++程序是32位,則無法執行此操作。您必須將C ++應用程序編譯為64位,然後您可以從可執行文件中調用另一個64位應用程序。

轉載註明原文: 如何從32位C ++應用程序啟動64位Java應用程序?