我在下面做了:
subst A: "C\Desktop"
现在来自java代码:
String command= "java -jar A:\test.jar"
Process process = Runtime.getRuntime().exec(command);
JVM似乎在这里被绞死,从不执行此行。当我运行"java -jar C:\Desktop\test.jar".
它成功执行。
Runtime.getRuntime无法解析虚拟硬盘吗? 感谢
答案 0 :(得分:4)
我假设您有\\t
而不是\t
并且您正在读取错误流,因此您可以看到任何错误。 \t
是制表符。
(使用\
作为路径分隔符的MS-DOS的乐趣;)
转发您遇到的错误,您应该会看到问题。
答案 1 :(得分:1)
java.lang.Process的Javadoc说
父进程使用这些流向输入提供输入并获取输出 从子进程。因为一些本机平台只提供 标准输入和输出流的缓冲区大小有限,失败 及时写入输入流或读取输出流 子进程可能导致子进程阻塞,甚至死锁。
意味着您没有及时读取或写入数据导致相关进程中的缓冲区溢出。这可能是一个可能的问题。请阅读javaworld上的article并考虑及时在单独的线程中实现读写操作。