簡體   English   中英

JAVA:在默認編輯器中打開文件並跳轉到行號

[英]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.

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