【发布时间】:2012-08-20 01:41:01
【问题描述】:
在我的 Java 程序中,我使用命令行库来分叉 Java 进程。当我在java.exe -jar 调用中传递的 JAR 文件的文件路径超过 Windows 的 260 个字符的路径长度限制时,这将失败(取决于程序的使用方式)。 (错误消息是Error: Unable to access jarfile,后跟路径名。)我可以通过(手动)将\\?\ 前缀添加到JAR 文件名来使Java 调用工作。这解决了一个特定的问题实例,但这通常是正确的方法吗?
我是否应该期望 Windows 程序正确处理作为命令行参数传递的长路径,或者 - 检测长路径并添加 \\?\ 前缀是调用者的责任吗?
或者不太笼统:java.exe 或命令行库中是否存在错误?
【问题讨论】:
标签: windows winapi cmd executable command-line-arguments