[英]JAVA : Open file in default editor and jump to line number
有沒有辦法在Java中打開默認文本編輯器中的文件並跳轉到行號? 只有用戶輸入文件名和行號。
我可以使用以下代碼在默認編輯器中打開文件
java.awt.Desktop.getDesktop().edit(new File(filename));
但我想跳到特定的行號。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
// ...
public void solve() {
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice screen = env.getDefaultScreenDevice();
Robot robot = null;
try {
robot = new Robot(screen);
} catch (AWTException e) {
e.printStackTrace();
}
int lineNumber = 15; // your line number
try {
Desktop.getDesktop().edit(new File(filename));
Thread.sleep(100L);
for (int i = 0; i < lineNumber; i++) {
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(10L);
}
} catch (Exception e) {
e.printStackTrace();
}
}
你必須使用Thread.sleep,因為文件應該啟動,快速按鍵是壞的。 我們多次點擊向下箭頭鍵。
您需要啟動一個特定的文本編輯器,允許您跳轉到一行。 像記事本++。
notepad++ FILENAME -n73
但是經常使用的默認文本編輯器如notepad(windows)或gedit(linux)都沒有這樣的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.