调用Runtime.getRuntime()EXEC(命令)。虚拟硬盘无法正常工作?

时间:2012-08-06 08:02:10

标签: java runtime.exec

我在下面做了:

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无法解析虚拟硬盘吗? 感谢

2 个答案:

答案 0 :(得分:4)

我假设您有\\t而不是\t并且您正在读取错误流,因此您可以看到任何错误。 \t是制表符。

(使用\作为路径分隔符的MS-DOS的乐趣;)

转发您遇到的错误,您应该会看到问题。

答案 1 :(得分:1)

java.lang.Process的Javadoc说

  

父进程使用这些流向输入提供输入并获取输出   从子进程。因为一些本机平台只提供   标准输入和输出流的缓冲区大小有限,失败   及时写入输入流或读取输出流   子进程可能导致子进程阻塞,甚至死锁。

意味着您没有及时读取或写入数据导致相关进程中的缓冲区溢出。这可能是一个可能的问题。请阅读javaworld上的article并考虑及时在单独的线程中实现读写操作。