2011-11-10 3 views
0

Windows 7 64 비트에서 실행 가능한 .jar 파일을 실행하는 데 간단한 C++ 프로그램을 사용하고 있습니다. 나는 이것이 64 비트 자바를 실행할 것을 기대했지만, 그렇지 않다. 32 비트 버전을 실행한다. 자바 응용 프로그램이 아니라 예상대로 'AMD64'보다 '86'로 컴퓨터 아키텍처를 기록 시작되면32 비트 C++ 응용 프로그램에서 64 비트 Java 응용 프로그램을 시작하는 방법은 무엇입니까?

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); 

:

나는 다음과 같은 코드를 사용하고 있습니다. 나는 검사하여이 정보를 얻을 :

System.getProperty("os.arch") 

내가 예상대로 프롬프트 사물이 작동하는 명령에서 같은 명령을 실행하면 - 자바 응용 프로그램 로그 'AMD64'를.

어떻게 64 비트 Java를 시작하도록 시작 프로그램을 변경할 수 있습니까?

+7

다른 PATH가있을 수 있습니까? 자신의 PATH는 java 64bit dir을 포함하고 32bit app는 java 32bit dir이있는 PATH를 상속 받아 32bit javaw.exe를 먼저 찾고 실행합니다. – DejanLekic

+1

실행하려는 javaw.exe에 대해 명시 적으로 시도해 볼 수 있습니까? 예 : 'C : \\ Program Files \\ Java \\ jdk1.7.0 \\ bin \\ javaw.exe' –

답변

0

C++ 프로그램이 32 비트라면 수행 할 수 없습니다. C++ 응용 프로그램을 64 비트로 컴파일 한 다음 실행 파일에서 다른 64 비트 응용 프로그램을 호출 할 수 있습니다.