我正在編寫一個程序,該程序使用scp在較大的java程序中複製文件。現在,程序凍結了,而scp正在複製文件,這可能需要幾分鐘的時間,所以我希望能夠顯示scp的進度,或者至少可以使用終端窗口scp進展顯示!有什麼建議麼?將scp的狀態欄顯示在Java窗口中
0
A
回答
2
scp
寫入STDOUT並刷新輸出。如果你管輸出,你可能能夠從管道讀取輸出,但我的猜測是1)scp不會將進度條打印到管道上,或者2)如果你可以做1,那麼輸出只會有意義你在java窗口中重新實現一個pty或類似的東西。
但是,您可以嘗試使用期望模塊調用scp並模仿終端的工作方式,並且您可能會假裝scp認爲其作爲終端運行。
最後,(這可能是最好的答案),不要使用scp,找到一個直接鏈接到openssh協議的java庫來導入用scp傳輸文件。
2
當你說「程序凍結」時,我的猜測是你的意思是一個Swing UI凍結了。如果是這樣,請在後臺線程中啓動scp並向用戶顯示一個不確定的進度條。
0
使用SwingWorker調用「啓動scp」以獲取主線程並讓GUI再次更新。
要獲得實際進度,您需要調查由scp打印的字符。我相信它保持一個ASCII進度條,然後可以用Java進行復制。您可能想要將「-v」添加到scp,讓它變得更健談。
相關問題
- 1. 在彈出窗口中顯示狀態
- 2. 如何在功能區窗口中顯示狀態欄wpf c#
- 3. 模型窗口顯示在iPhone的狀態欄後面
- 4. 排列窗口底部的狀態欄
- 5. 更改Adempiere窗口的狀態欄
- 6. 在狀態欄中顯示異常
- 7. 在顯示狀態欄之前獲取高度狀態欄?
- 8. 隱藏/顯示狀態欄
- 9. 狀態欄庫不顯示
- 10. 彈出窗口處於狀態欄時的NSPopover瞬變狀態
- 11. Java中的狀態欄
- 12. iPhone 5/SE顯示白色狀態欄,iPhone 6/7顯示黑色狀態欄
- 13. WPF,在UserControl內更新主窗口中的狀態欄
- 14. 如何在LibGDX上顯示狀態欄?
- 15. 顯示在相機imagePicker狀態欄
- 16. Qt正常狀態欄在臨時狀態後不顯示
- 17. 如何在狀態欄中顯示CMFCRibbonButton的工具提示?
- 18. 將swf顯示在本機窗口中
- 19. 通過狀態和顯示總的每個狀態的在Java
- 20. 顯示有關狀態欄上連接狀態的信息
- 21. 在Java/SWT中保存一個窗口的狀態
- 22. 顯示狀態欄並更改顏色
- 23. 始終顯示狀態欄和軟鍵
- 24. 添加UIImagePickerController時狀態欄不顯示
- 25. 顯示指標減去狀態欄?
- 26. iOS SDK。顯示通話狀態欄
- 27. 如何隱藏和顯示狀態欄
- 28. 在tabpanel中顯示窗口
- 29. 如何在Java上顯示窗口?
- 30. 在CURRENT瀏覽器窗口中用javascript隱藏工具欄/狀態欄?
你如何啓動scp? – 2010-05-05 00:15:25