0

在我的 Java 程序中,我使用命令行库来分叉 Java 进程。java.exe -jar当我在调用中传递的 JAR 文件的文件路径超过 Windows 的 260 个字符路径长度限制时,这将失败(取决于程序的使用方式) 。(错误消息Error: Unable to access jarfile后跟路径名。)我可以通过(手动)向\\?\JAR 文件名添加前缀来使 Java 调用工作。这解决了一个特定的问题实例,但这通常是正确的方法吗?

我是否应该期望 Windows 程序正确处理作为命令行参数传递的长路径,或者 - 检测长路径并添加\\?\前缀是调用者的责任吗?

或者不那么笼统:命令行库或命令行库中是否存在错误java.exe

4

1 回答 1

0

大多数程序将简单地获取文件名并将其按原样传递给 API 函数,例如CreateFile(). 因此,在这种情况下,调用者确实有责任检测长文件名并在传递之前相应地为其添加前缀。

于 2012-08-24T20:04:37.377 回答