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
我不确定 java 小程序是否真的会在启动之前查看环境变量,但你可以做什么编辑 /etc/profile 并添加以下行:
要使其成为真正的 tmp 目录(如会话结束时文件消失,您需要编辑用户的 .bash_logout 以及框架 .bash_logout (/etc/skel/.bash_logout) 以包含以下内容:
注销部分很危险,因为未设置变量并且您以 root 身份登录!我不会将此添加到 root 帐户或轮组成员的任何人!请谨慎行事。
您要查找的文件是:
您必须设置 TEMP 变量,如:
如果你想
/home/user/tmp
在重启时被清理,我建议你@reboot
在用户的个人crontab
.在 C 语言中,我将tmpfile()调用用于 posix 系统,这将避免冲突。因此,如果您还没有尝试自己实现它,我会先寻找一个类似的 Java 调用。
Java 使用系统属性
java.io.tmpdir
来配置临时目录。如果未明确指定,合理的 JRE 将根据系统将其设置为合理的值。对我来说,当我尝试使用 java 安装 jar 文件时,这很有效。
我使用红帽 Linux。
/apps/prod/tmp
作为新文件夹。在运行所需的命令之前使用它。
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=1dab2wir99_201&_afrLoop=305930829027924#SYMPTOM
例如: