从 Java 中,我将一个可执行文件提取到使用 File.createTempFile() 指定的位置。当我尝试运行我的可执行文件时,我的程序在尝试读取第一行输出时挂起。
我发现如果我尝试从另一个程序运行相同的提取可执行文件,如果我将目录指定为 C:\Documents and Settings\username\Local Settings\Temp\prog.exe,它就可以工作。但是,如果我将目录指定为 C:\DOCUME~1\USERNA~1\LOCALS~1\Temp\prog.exe 我就会挂起。
有没有办法在我的程序中解开波浪号文件名,以便我可以指定一个可以使用的目录名?
(而且由于我总是喜欢解决语言和 API 设计问题,有什么理由为什么 Java File.createTempFile() 和 java.io.tmpdir 必须评估损坏的文件名?)