Jawaban:
Saya tidak yakin apakah java applet akan benar-benar melihat variabel lingkungan sebelum dimulai, tetapi apa yang dapat Anda lakukan mengedit / etc / profile dan menambahkan baris berikut:
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
Untuk menjadikannya direktori tmp yang benar (seperti pada file yang hilang saat sesi berakhir, Anda harus mengedit .bash_logout pengguna serta kerangka .bash_logout (/etc/skel/.bash_logout) untuk menyertakan yang berikut ini :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
Bagian logout berbahaya adalah variabel tidak disetel dan Anda masuk sebagai root! Saya tidak akan menambahkan ini ke akun root atau siapa pun yang merupakan anggota grup wheel! Lanjutkan dengan hati-hati.
tmpwatch
perintah tidak ada pada BSD (misalnya OSX) versi unix, untuk siapa saja yang ingin portabilitas. Kotak CentOS saya memilikinya. :)
File yang Anda cari adalah:
/etc/environment
Anda harus mengatur variabel TEMP seperti:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
Dalam C, saya akan menggunakan panggilan tmpfile () untuk sistem posix, yang akan menghindari tabrakan. Jadi saya akan mencari panggilan Java yang sama sebelum mencoba mengimplementasikannya sendiri, jika Anda belum melakukannya.
java.io.File.createTempFile
. Sekarang dengan menambahkan RNG aman.
Java menggunakan properti sistem java.io.tmpdir
untuk mengkonfigurasi direktori sementara. JRE yang masuk akal akan menetapkan nilai yang masuk akal berdasarkan sistem jika tidak ditentukan secara eksplisit.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Misalnya:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"