簡體   English   中英

調用Runtime.getRuntime()EXEC(命令)。 與虛擬硬盤驅動器不起作用?

[英]Runtime.getRuntime().exec(command); With virtual hard drive not working?

我在下面做了:

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是否不能解析虛擬hardrive? 謝謝

我假設您有\\\\t而不是\\t並且您正在從錯誤流中進行讀取,因此可以看到任何錯誤。 \\t是制表符。

(使用\\作為路徑分隔符的MS-DOS的樂趣;)

轉儲您遇到的錯誤,您應該會看到問題。

java.lang.Process的Javadoc說

父流程使用這些流將輸入饋入子流程並從子流程獲取輸出。 由於某些本機平台僅為標准輸入和輸出流提供了有限的緩沖區大小,因此無法及時寫入子流程的輸入流或讀取子流程的輸出流可能導致子流程阻塞,甚至死鎖。

這意味着您不會立即讀取或寫入數據,從而導致關聯進程中的緩沖區溢出。 這可能是一個問題。 請閱讀有關javaworld的文章 ,並考慮迅速在單獨的線程中實現讀寫操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM