2013-08-26 3 views
0

JaNeLa를 전달하는 jnlp 파일이 있으므로 오류가 없습니다. 웹 시작 응용 프로그램은 Linux 및 Windows 32 비트에서 제대로 실행됩니다. 그것은 Windows 64 비트에서 실행되지 않습니다.javaws는 클라이언트가 64 비트 일 때도 항상 32 비트 라이브러리를로드합니다.

  • 변화 파일을하지 강제로
  • 로드 응용 프로그램을 존재하지 않는 파일에 jnlp 파일의 라이브러리 파일 이름 : 나는 올바른 네이티브 라이브러리를로드의 Javaws 여부를 결정하기 위해 다음과 같은 시험을 고안

    <resources os="Windows" arch="x86_64"> 
         <nativelib href="swt-4.2-win32-x86_64.jarx" /> 
        </resources> 
    
        <resources os="Windows" arch="x86"> 
         <nativelib href="swt-4.2-win32-x86.jarx" /> 
        </resources> 
    

    의 Javaws이 보라를 시도합니다 발견 오류는 여기

이 JNLP 스텁 (... 저를 잘 신뢰되는 파일의 나머지)입니다로드하려고 파일을 확인할 수 있습니다 광고가

그래서 나는에 첫 번째 줄을 변경 아치 = "x86_64에"를 인식하지 못하는 의미하는 32 비트 라이브러리 :

<resources os="Windows" arch="amd64"> 

그러나의 Javaws 여전히 32 비트 파일을로드하려고합니다. 무슨 일이 일어나 든 내 OS의 아키텍처는 감지되지 않습니다.

나는 게시하기 전에 엄청난 거래를했다. 어떤 사람들은 amd64를 사용한다고 말하며 어떤 사람들은 x86_64를 사용한다고 말합니다. 철저한 OS/아치 목록을 찾는 것은 거의 불가능합니다.

질문 : javaws가 64 비트 컴퓨터에서 요청할 때 64 비트 바이너리를로드하는 방법은 무엇입니까?

편집 :

내가 jnlp 파일에 다음 태그를 삽입하여 올바른 파일을 찾을 수 있습니다

<resources os="Windows" arch="x86\ "> 

그래서 "86"로 시작 아치 값이입니다. 그러나 "x86 64"를 넣으면 작동하지 않습니다. 그래서 공간이 있습니다. 그러나 그 공간 뒤에 오는 것은 무엇입니까? 그리고 Oracle은이 필드에 허용되는 값의 목록을 게시하지 않습니까?

+0

해당 컴퓨터가 [이 페이지] (http://pscode.org/prop/?prop=os.arch&format=TSV)를 가리키면 'os.arch'에 대한 어떤 값이 표시됩니까? 64 비트 컴퓨터에서 32 비트 JRE를 실행하고'os.arch \t x86'을 봅니다. 상단의 텍스트 영역에 –

+0

지금까지 32 비트의 경우 "x86", 64 비트 JVM의 경우 "amd64"및 "x86_64"만 나타났습니다. (밑줄에주의하십시오.) 다른 옵션을 구분하기 위해 공백이 사용됩니다. 사실 arch = "amd64 x86_64"는 모든 64 비트 JVM과 일치해야하지만, 제 경우에는 작동하지 않습니다 ... 왜 그런지, 떠나는 이유는 무엇입니까? 나에게는 두 개의 자원 요소가 있는데 하나는 arch = "amd64"이고 다른 하나는 arch = "x86_64"이고 다른 하나는 os 속성이 없습니다. –

답변

1

OK, 나는 윈도우 7 프로 64 비트를 실행하고 있었기 때문에 내 JVM도 64 비트라고 가정했습니다. 아니. 브라우저가 처음으로 javaws 응용 프로그램을 가리키면 JVM이 자동으로 설치됩니다. 설치된 JVM은 브라우저에 따라 다릅니다. 윈도우 7 64 비트는 IE 32 비트가 미리 설치되어 있으며 javaws는 32 비트 lib를 가져 오는 중입니다. 따라서 아키텍처와 관련하여 올바른 기본 라이브러리를 선택하는 문제가 언뜻보기에는 해결되었습니다. 여전히 문제가 있지만 이것도 그 중 하나가 아닙니다.

관련 문제