只需编写程序名称即可在不同的编辑器中运行文本文件

时间:2012-12-11 11:03:29

标签: java runtime.exec

我有两个问题。 方法Runtime.getRuntime().exec()从哪个目录获取其资源?

如果我正在调用Runtime.getRuntime().exec("notepad.exe"),为什么要启动Windows编辑器? java从哪里获取.exe源代码?

基于这个问题,我必须让用户选择,如果他想在编辑器中打开文件,他更喜欢哪些编辑器,并且想要使用。他只写notepad.exeultraedit.exe之类的东西,所选择的文件将在这里写下的编辑器中打开。目前,我正在使用此方法打开文件

public void open(String path) {
    try {
        if(new File(path).exists())
            Runtime.getRuntime().exec("notepad.exe " + path);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

因此您可以看到每个文件都将在记事本中打开。但我需要这样的事情:

public void open(String program, String path) {
    try {
        if(new File(path).exists())
            Runtime.getRuntime().exec(program + " " + path);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

那么有没有可能通过调用它们来打开不同编辑器中的txt文件 .exe文件?

2 个答案:

答案 0 :(得分:1)

Runtime.exec()PATH获取信息。在那里找到的任何程序都可以像你展示的那样执行。

答案 1 :(得分:1)

Where does java gets the .exe source from?

它不是关于java的。检查操作系统中的PATH环境变量。它具有所有exe文件的路径。 试试这个

1)打开cmd

2)输入c:\> echo %PATH%

第二个会告诉你PATH变量的值

So is there any possibility to open txt files in different editors, by just calling their .exe file?

是编辑PATH变量以包含其他编辑器的exe文件的路径(使用分号然后将路径追加到环境中不替换现有的字符串),并且java程序保持不变