在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);
可能导致此不兼容的原因以及如何解决?
答案 0 :(得分:0)
Windows 7和Windows XP似乎会生成稍微不兼容的文件快捷方式。
暂时搁置shell执行(任何类型)和程序执行Windows快捷方式的不雅。
经过一些故障排除后,事实证明,Windows XP生成的快捷方式的执行成功,而在Windows 7(可能是Vista和其他版本)中修改的或修改后,产生了“未找到路径”错误。
这两个快捷方式的二进制内容不同,但没有对这些差异进行全面分析。
快速解决方案是在Windows XP中创建必要的快捷方式。 一个较长期且不那么可怕的解决方案是完全消除快捷方式的使用。
我很好奇有关快捷方式之间shell执行不兼容的详细信息。