我正在编写一个程序,该程序使用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