在Java中有没有办法在默认文本编辑器中打开文件并跳转到行号?只有用户输入文件名和行号。
我可以使用以下代码在默认编辑器中打开文件
java.awt.Desktop.getDesktop().edit(new File(filename));
但我想跳到特定的行号。
答案 0 :(得分:2)
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,因为该文件应该启动,并且快速按键操作很糟糕。我们多次点击向下箭头键。
答案 1 :(得分:1)
您需要启动一个特定的文本编辑器,以便跳转到一行。像记事本++。
notepad++ FILENAME -n73
但是经常使用的默认文本编辑器如记事本(windows)或gedit(linux)确实没有这样的参数。