Shell执行现有快捷方式的工作正常,但新快捷方式的执行失败。为什么?

时间:2014-04-23 21:27:28

标签: java exec java-6 windows-shortcut

在Java(以及可能的.NET和其他平台)中执行Windows快捷方式时,现有快捷方式的执行可以正常运行,但无论设置,权限,工作目录,快捷方式目标的内容如何,​​新快捷方式都无法执行,快捷方式的位置,目标的位置或任何与快捷方式相关的设置。

作为参考,有问题的代码如下,尽管问题的范围可能比这个特定代码暗示更广泛和更奇怪:

// Replace <SomeWindowsShortcut.lnk> with an actual shortcut name.
// Shortcuts are implemented as a file with the hidden extension "lnk"
String command = String command = "CMD /C start data\\<SomeWindowsShortcut.lnk>";
Runtime.getRuntime().exec(command);

可能导致此不兼容的原因以及如何解决?

1 个答案:

答案 0 :(得分:0)

Windows 7和Windows XP似乎会生成稍微不兼容的文件快捷方式。

暂时搁置shell执行(任何类型)和程序执行Windows快捷方式的不雅。

经过一些故障排除后,事实证明,Windows XP生成的快捷方式的执行成功,而在Windows 7(可能是Vista和其他版本)中修改的修改后,产生了“未找到路径”错误。

这两个快捷方式的二进制内容不同,但没有对这些差异进行全面分析。

快速解决方案是在Windows XP中创建必要的快捷方式。 一个较长期且不那么可怕的解决方案是完全消除快捷方式的使用。

我很好奇有关快捷方式之间shell执行不兼容的详细信息。