Yanıtlar:
Java uygulamasının başlamadan önce ortam değişkenlerine gerçekten bakıp bakmayacağından emin değilim, ancak ne yapabileceğinizi düzenle / etc / profile ve aşağıdaki satırları ekleyin:
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
Gerçek bir tmp dizini yapmak için (oturum sona erdiğinde dosyalarda olduğu gibi, kullanıcının .bash_logout'u ve .bash_logout (/etc/skel/.bash_logout) iskeletini aşağıdakileri içerecek şekilde düzenlemek istersiniz. :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
Çıkış kısmı tehlikeli, değişken ayarlanmıyor ve root olarak giriş yaptınız! Bunu root hesabına veya tekerlek grubunun üyesi olan hiç kimseye eklemezdim! Dikkatli olun.
tmpwatch
taşınabilirlik için giden herkes için komut unix'in BSD (örn. OSX) sürümünde mevcut değildir. Benim CentOS kutularım var. :)
Aradığınız dosya:
/etc/environment
TEMP değişkenini aşağıdaki gibi ayarlamanız gerekir:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
C'de, çarpışmayı önleyecek bir posix sistemi için tmpfile () çağrısını kullanırdım. Bu yüzden, daha önce yapmadıysanız, kendim uygulamaya başlamadan önce benzer bir Java çağrısı ararım.
java.io.File.createTempFile
. Şimdi eklenen güvenli RNG ile.
Java java.io.tmpdir
, geçici dizini yapılandırmak için system özelliğini kullanır . Makul bir JRE, açıkça belirtilmezse, sistemi temel alan makul bir değere ayarlar.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Örneğin:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"