Използвам проста C++ програма, за да стартирам изпълним .jar файл в Windows 7 64 bit. Очаквах това да изпълни 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<char*>(NULL)};
const int ret = execvp(javaw_path, args);
Когато java приложението се стартира, то регистрира архитектурата на машината като „x86“, а не „amd64“, както се очаква. Получавам тази информация, като проверявам:
System.getProperty("os.arch")
Когато изпълня същата команда от командния ред, нещата работят както очаквах - Java приложението регистрира 'amd64'.
Как мога да променя стартовата си програма, за да стартирам 64-битова Java?
C:\\Program Files\\Java\\jdk1.7.0\\bin\\javaw.exe
- person Peter Lawrey   schedule 11.11.2011