2013-06-11 3 views
2

저는 최근 Java 7 업데이트 21입니다. JDK와 저는 netbeans로 Java 응용 프로그램을 만들었습니다. My jar를 배포하려면 Exe4j 4.5.2 Jar를 exe로 사용하십시오.EXE4j jar to exe 오류

exe4j를 사용하면 exe가 생성되지만 실행하면 오류 메시지가 표시됩니다.

"JVM을 시작할 수 없습니다. 최대 힙 크기 (-Xmx)가 너무 커서 안티 바이러스 또는 방화벽 도구가 실행을 차단할 수 있습니다."

약간의 테스트 후에도 exe4j에서 작동하는 응용 프로그램 exe 파일에서도 동일한 오류 메시지가 나타납니다. 이전에 JDK7u21을 설치하기 전에 발견했습니다.

(I는 JDK와 EXE4j의 64 비트 버전을 사용하고 있지만, EXE 32 뒀 32 비트 응용 프로그램하고자한다 준수)

+0

최대 힙 크기가 3GB를 초과하거나 사용 가능한 시스템 메모리 인 경우이 오류가 발생합니다. – MadProgrammer

+0

사용하고있는 설정을 알려주지 않았습니다. 사용 가능한 메모리 오류가 아닙니다. 32 비트 JRE가 설치되지 않았기 때문입니다. – user2473015

+1

Windows가 1GB의 메모리를 예약하지만 32 비트 프로세스는 최대 4GB까지만 액세스 할 수 있습니다. 32 비트 프로세스는 Windows 컴퓨터에서 3GB 이상을 액세스 할 수 없습니다. – MadProgrammer

답변

2

Exe4j 될하기 위해 JVM을 필요로하는 대상 JVM의 DLL을 로딩하여 작동을 실행 가능 래퍼 (wrapper)와 동일한 "비트 (bitness)" 따라서 32 비트 Exe4j 랩퍼는 32 비트 JVM 만로드 할 수있는 반면 64 비트 랩퍼는 64 비트 JVM 만로드 할 수 있습니다.

Exe4j가 레지스트리에서 JVM을 검색 할 때 잘못된 비트의 JVM을 무시하고 자체 bitness의 JVM 만 살펴 봅니다. 그러나 Exe4j가 EXE4J_JAVA_HOME 환경 변수를 설정하여 특정 JVM을로드하도록하고 비트가 일치하지 않으면 JVM로드가 실패합니다.

32 비트 응용 프로그램 (즉, 실행 가능한 래퍼)을 원하면 32 비트 JRE 또는 JDK가 설치되어 있어야합니다. 반면에 64 비트 JVM을 사용하려면 64 비트 실행 파일 래퍼를 제공해야합니다.

+1

대단히 감사합니다. 32 비트 JRE를 설치 한 후 – user2473015

+0

두 가지 방법으로 작동합니다 .64 비트 및 32 비트. 어떤 버전을 사용하는 것이 가장 좋습니까? – user2473015

+1

두 가지를 모두 제공하고 사용자가 사용할 버전을 결정하도록 할 수 있습니다. https://java.com/en/download/faq/java_win64bit.xml 하나만 제공하려는 경우, 이전 버전의 32 비트 컴퓨터에서는 작동하지 않을 것이라고 생각합니다. 32 비트 버전을 제공하는 것이 좋습니다. –

관련 문제