Java에서 File.createTempFile()을 사용하여 지정된 위치에 실행 파일을 추출합니다. 실행 파일을 실행하려고하면 출력의 첫 번째 행을 읽으려고 할 때 프로그램이 중단됩니다.Java에서 Windows 파일 이름의 문제를 어떻게 해결합니까?
다른 프로그램에서 추출한 실행 파일을 실행하려고하면 C : \ Documents and Settings \ username \ Local Settings \ Temp \ prog.exe와 같은 디렉터리를 지정하면 작동한다는 것을 발견했습니다. 하지만 C : \ DOCUME ~ 1 \ USERNA ~ 1 \ LOCALS ~ 1 \ Temp \ prog.exe와 같이 디렉터리를 지정하면 중단됩니다.
내 프로그램에서 물결표 파일 이름을 해제하여 작동시킬 디렉토리 이름을 지정할 수 있습니까? (난 항상 언어와 API 설계 문제를 해결처럼, 자바 File.createTempFile()와 java.io.tmpdir을 맹 글링 된 파일 이름으로 평가해야 할 어떤 이유는?가 있기 때문에 그리고)
이것이 내 문제보다 나은 답변이지만 내 답변보다 나은 답변입니다. –
실제로 파일 이름을 제거하는 것처럼 보입니다! 그래도 내가 달리면 어떻게 든 그것은 아직도 달려있다. 나는 왜, 아직, 이해하지만, 그것에 노력하고 ... – skiphoppy
아 하! 실행 파일의 압축을 풀 때 사용한 OutputStream에 close()를 호출해야했습니다. 내 테스트에서 밝혀졌지만 응용 프로그램에서 여전히 사용중인 (및 closed()가 아닌) 실행 파일에 대해 잘못된 파일 이름을 전달했으며 더 이상 사용되지 않은 이전 추출에 전체 파일 이름을 전달했습니다. – skiphoppy