在我们的应用程序中,我们允许用户打开文件和目录。
Java 6 为我们提供了...
java.awt.Desktop.getDesktop().open(file);
效果很好。不过,由于我们需要保证Java 5的兼容性,所以我们还实现了一个打开文件的方法,通过调用start
命令输入cmd.exe
...
String command = "cmd.exe start ...";
Runtime.getRuntime().exec(command);
这就是问题出现的地方。看来start
命令只能处理8.3 http://en.wikipedia.org/wiki/8.3_filename文件名,这意味着任何非短(8.3)文件/目录名都会导致start
命令失败。
有没有一种简单的方法来生成这些短名称?或者还有其他解决方法吗?
尝试这样的事情
import java.io.IOException;
class StartExcel {
public static void main(String args[])
throws IOException
{
String fileName = "c:\\temp\\xls\\test2.xls";
String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName};
Runtime.getRuntime().exec(commands);
}
}
将虚拟标题传递给 Windows 启动命令非常重要,因为文件名可能包含空格。这是一个特点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)