Відповіді:
Я не впевнений, що аплет 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
Частина виходу є небезпечною, тому що змінна не встановлюється, і ви ввійшли як root! Я б не додав цього до кореневого облікового запису чи будь-кого, хто є членом колесної групи! Дійте з власної обережності.
tmpwatchкоманда не існує у BSD (наприклад, OSX) версії unix, для тих, хто переходить на портативність. У моїх ящиках CentOS це є. :)
Ви шукаєте файл:
/etc/environment
Ви повинні встановити змінну TEMP на зразок:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
У C я би використовував tmpfile () виклик для системи posix, яка б уникнула зіткнення. Тому я би шукав подібний дзвінок 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"