我在下面做了:
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 不能解析虚拟硬盘吗?谢谢
我在下面做了:
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 不能解析虚拟硬盘吗?谢谢
我假设您有\\t
并且没有\t
,并且您正在从错误流中读取,因此您可以看到任何错误。\t
是制表符。
(MS-DOS\
用作路径分隔符的乐趣;)
转储你得到的错误,你应该看到问题。
java.lang.Process 的 Javadoc 说
父进程使用这些流向子进程提供输入并从子进程获取输出。由于部分原生平台只为标准输入输出流提供有限的缓冲区大小,未能及时写入子进程的输入流或读取输出流可能会导致子进程阻塞,甚至死锁。
这意味着您没有及时读取或写入导致相关进程中缓冲区溢出的数据。这可能是一个可能的问题。请阅读有关 javaworld的文章,并考虑及时在单独的线程中实现读取和写入。