>Java >java지도 시간 >Java 프로그램에서 현재 작업 디렉토리를 어떻게 안정적으로 변경할 수 있습니까?

Java 프로그램에서 현재 작업 디렉토리를 어떻게 안정적으로 변경할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-28 04:24:15865검색

How Can I Reliably Change the Current Working Directory in a Java Program?

Java 프로그램의 현재 작업 디렉토리 다시 작성

일반적인 가정에도 불구하고 Java 프로그램 내에서 현재 작업 디렉토리(CWD)를 변경하는 것은 간단하지 않습니다. . 상대 경로를 사용하여 CWD를 검색하고 파일을 열 수 있는 기능에도 불구하고 Java에는 직접 수정을 위한 신뢰할 수 있는 방법이 부족합니다.

System.setProperty("user.dir")의 제한 사항

"user.dir"을 설정해도 모든 후속 작업에 대한 CWD가 효과적으로 변경되지는 않습니다. 특정 파일 생성 작업에 영향을 미칠 수 있지만 FileOutputStreams와 같은 다른 기능은 영향을 받지 않습니다.

대체 접근 방식

이 제한을 피하려면 다음 대안을 고려하십시오.

  • 파일(문자열 부모, 문자열 자식) 생성자: 디렉터리 경로와 파일 경로를 별도로 분류하세요. 이를 통해 더 쉽게 교체하고 수정할 수 있습니다.
  • 스크립트 실행: 원하는 디렉터리에서 Java를 실행하는 스크립트를 만듭니다.
  • JNI(Java Native Interface): 네이티브 코드를 활용하여 CWD를 직접 수정합니다. 그러나 이를 위해서는 플랫폼별 구현이 필요합니다.

해결되지 않은 버그

기본적인 문제는 2008년 OpenJDK 버그로 제기되었으나 이후 다음과 같이 종결되었습니다. "고치지 않을 거야." 이는 Java 설계가 애플리케이션 내에서 CWD를 동적으로 변경하는 기능을 우선시하지 않는다는 것을 의미합니다.

위 내용은 Java 프로그램에서 현재 작업 디렉토리를 어떻게 안정적으로 변경할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.