답변:
Java 애플릿이 실제로 환경 변수를 시작하기 전에 실제로 볼 것인지는 확실하지 않지만 / etc / profile을 편집하고 다음 줄을 추가 할 수 있습니다.
if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
TMPDIR=/home/$USER/tmp
else
# You may wish to remove this line, it is there in case
# a user has put a file 'tmp' in there directory or a
rm -rf /home/$USER/tmp 2> /dev/null
mkdir -p /home/$USER/tmp
TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi
TMP=$TMPDIR
TEMP=$TMPDIR
export TMPDIR TMP TEMP
실제 tmp 디렉토리로 만들려면 (세션이 종료 될 때 파일이 사라지듯이) 사용자의 .bash_logout 및 스켈레톤 .bash_logout (/etc/skel/.bash_logout)을 편집하여 다음을 포함 시키십시오. :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
로그 아웃 부분은 변수가 설정되지 않고 루트로 로그인되어 위험합니다! 루트 계정이나 휠 그룹의 구성원 인 사람에게는 이것을 추가하지 않습니다! 주의해서 진행하십시오.
tmpwatchBSD (예 : OSX) 버전의 유닉스에는이 명령이 존재하지 않습니다. 내 CentOS 상자에 있습니다. :)
찾고있는 파일은 다음과 같습니다.
/etc/environment
TEMP 변수를 다음과 같이 설정해야합니다.
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
C에서는 충돌을 피하는 posix 시스템에 대해 tmpfile () 호출을 사용합니다 . 따라서 아직 구현하지 않은 경우 직접 구현하기 전에 비슷한 Java 호출을 찾습니다.
java.io.File.createTempFile. 이제 보안 RNG가 추가되었습니다.
Java는 시스템 특성 java.io.tmpdir을 사용하여 임시 디렉토리를 구성합니다. 합리적인 JRE는 명시 적으로 지정되지 않은 경우 시스템에 따라 적절한 값으로 설정합니다.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
예 :
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"