2016-09-08 4 views
0

내 웹 사이트에서 EXE 파일을 다운로드하려고합니다. 그래서 예를 들어, 나는 rarlab 사이트로 가서 64 비트 WinRAR 릴리즈를 새로 설치했습니다. (우리 모두는 그게 무엇인지 압니다.)Java에서 URL에서 EXE 파일을 다운로드하면 호환성 오류가 발생합니다.

어쨌든 64 비트 "setup"exe 파일을 업로드했습니다. 테스트를 위해 쉽게 다운로드 할 수있는 내 사이트의 루트 폴더로 이동합니다. 모든 브라우저에서 내 사이트로 이동합니다. rarlabs에서 "setup"파일을 성공적으로 다운로드하고 다른 EXE 파일처럼 실행할 수 있습니다.

자, 이것은 하나님의 사랑을 이해할 수없는 혼란스러운 부분입니다. 이 간단한 코드를 사용하여 일부 다른 스택 오버플로 응답을 찢어서 주어진 URL에서 EXE 파일을 다운로드 할 수 있습니다. 의 URL 및 파일 인수가

public static void downloadEXE(URL url, String file) throws IOException { 
    InputStream in = url.openStream(); 
    FileOutputStream fos = new FileOutputStream(new File(file)); 

    int length = -1; 
    byte[] buffer = new byte[1024];// buffer for portion of data from 
    // connection 
    while ((length = in.read(buffer)) > -1) { 
     fos.write(buffer, 0, length); 
    } 
    fos.close(); 
    in.close(); 
} 

코드 ...

...

URL url = new URL("http://www.website.com/winrar-x64-540.exe"); 
String file = "c:\\Users\\..\\Documents\\winrar-x64-540.exe"; 

예, 이것은 오류없이 내 문서 폴더에 내 사이트에서 파일을 다운로드 하지만 난 그것을 실행할 때 나는 ...이 오류가

LINK TO ERROR IMAGE

거기서 멈추지 않고 같은 코드를 사용하여 같은 64 비트 EXE "setup"파일 excyptt을 공식 사이트 인 rarlabs에서 다운로드하려고했습니다. 이번에는이 코드를 사용하여 EXE 파일을 다운로드 할뿐만 아니라 성공적으로 실행할 수 있기 때문에 올바른 URL을 사용했습니다.

EXE 파일이 아니라 내 사이트에 문제가 있다고 생각되면? 나는 또한 매우 중요 언급해야합니다 발견은 내가 그 가능성이 도움이 될 것으로 나타났습니다. 나는 WORKING EXE 파일의 속성을 BROKEN 병이있는 것과 비교하기로 결정했습니다. 작동하는 사람의 크기는 2.07 MB 였고 고장난 사람은 무려 375 바이트였습니다! 깨진 exe는 working exe가 가진 속성과 일치하지 않습니다 AT ALL.

두 파일의 비교를 보면 내 브라우저에 성공적으로 파일을 다운로드하고 실행할 수 있기 때문에 내 사이트가 잘못되지 않았다고 생각하지만 오류가 발생했습니다.

문제를 파악하는 데 필요한 질문이 있으시면 언제든지 문의하십시오. 내가 어디에서 구체적이어야하는지 알려줘. 모두에게 감사드립니다. :)

+0

사이트의 파일 크기는 얼마나됩니까? –

+0

그것은 빨랐다, 그것은 2.07 MB 다. 게시물에서 말한 "WORKING"exe 파일과 동일합니다. –

+0

너무 빨리 종료되는 이유를 보려면 디버거에서 코드를 단계적으로 살펴 보셨습니까? 당신이 우리에게 말하지 않는 예외 메시지가 있습니까? –

답변

1

아마 아무것도 유용하지 않을 것입니다. 서버가 요청을 거절하고 파일로 저장할 수 있습니까?

Java 코드를 사용하여 다운로드 한 파일의 크기는 얼마입니까? 예상 한 파일과 같은가요?

메모장으로 열어보고 실제로 exe인지 확인하십시오 (HTML이 아닌 임의의 ASCII 기호 및 차이점을 알 수 있음).

서버가 요청을 거부하고 HTML을 반환하는 경우 쿠키 (예 : 쿠키, 사용자 에이전트 속성 등을 얻기 위해 로그인해야 할 수도 있음)를보아야합니다. 브라우저에서 수행 할 때 통신이 어떻게 보이는지, 파이어 버그 등을 실행하는 방법, 네트워크 탭을 활성화하고 요청이 어떻게 보이는지 확인하십시오.

+0

html 파일 안에는 실제 exe 파일에 대한 새로운 링크가 있습니다. 이번에는 src URL이 I.p를 내 사이트에 사용하고 이름은 kayzio가 아닙니다. 코드에서 그렇게 해봅시다. 어떻게 진행되는지 알려 드리겠습니다. –

관련 문제