В Windows GetTempPathA используется для поиска временного каталога.Алгоритм:
1. The path specified by the TMP environment variable.
2. The path specified by the TEMP environment variable.
3. The path specified by the USERPROFILE environment variable.
4. The Windows directory.
Поэтому, если ваше приложение запущено без определения TMP
& TEMP
& USERPROFILE
, вы получите java.io.tmpdir
== GetWindowsDirectoryA .
Обычно приложения устанавливают java.io.tmpdir
внутри app-run.bat
(через -D...=...
) или app.properties
.
Я столкнулся с этой проблемой, потому что задача Gradle Test
не будет передавать переменные среды, если environment
свойства не передаются, а заменяются:
test {
environment = ["A": "1", "B": "2"] // won't work, because it replaces envs
}
test {
environment( ["A": "1", "B": "2"] ) // will work, because it appends to existing envs
}