![](/img/trans.png)
[英]How can I open vi editor from my java application in the same terminal?
[英]Java open a vi editor in foreground
我正在嘗試在linux env中使用Java代碼打開vi編輯器(通過外殼腳本執行Java代碼)。 編輯器應在前台打開並成為活動終端,而Java應該在后台運行。
我試過使用兩個命令:
字符串[] command = {“ xterm”,“ vi”,“ /home/user/test.txt”}; 進程pr = Runtime.getRuntime()。exec(command);
進程p = new ProcessBuilder(“ vi”,“ /home/user/test35.txt”)。start();
在上面的代碼之一中,如果檢查ps -ef | grep vi,我能夠運行該程序,但是它在后台運行。 我想作為用戶將其輸入編輯器的用戶身份作為活動終端在前台運行。 而java將在后台運行。 任何建議或摘要。
我已經將此帶有Java應用程序的Open VIM提到了,但還是徒勞。
如果要創建新的xterm 並在該終端中執行命令,則需要使用-e
傳遞命令。 嘗試這個:
ProcessBuilder pb = new ProcessBuilder("xterm", "-e", "vi", "/home/user/test.txt");
我所做的調試步驟是我嘗試通過命令打開終端並在Java代碼中使用相同的命令。 問題發現,我需要設置DISPLAY =:0。 如果我是通過root用戶運行的,那么對於其他用戶,則不需要DISPLAY
String []command = {"/usr/bin/xterm","-e", "vi", "/home/hscpe/test.txt"};
Process pr = Runtime.getRuntime().exec(command);
由於我是通過外殼腳本運行Java代碼的,因此我將在外殼腳本中添加導出,即export DISPLAY =:0。 現在將嘗試使編輯器可編輯(將通過按I來刺激,即通過Java robot插入)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.