Java 通过编写程序名在不同的编辑器中运行txt文件

Java 通过编写程序名在不同的编辑器中运行txt文件,java,runtime.exec,Java,Runtime.exec,我有两个问题。 方法Runtime.getRuntime().exec()获取其资源的目录在哪里 如果我正在调用Runtime.getRuntime().exec(“notepad.exe”),为什么它会启动windows编辑器?java从哪里获取.exe源代码 基于这个问题,我必须让用户选择,如果他想在编辑器中打开一个文件,他更喜欢并想使用哪个编辑器。他只写类似于notepad.exe或ultraedit.exe的东西,选择文件将在下面写的编辑器中打开。目前,我正在使用此方法打开一个文件 pu

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

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

基于这个问题,我必须让用户选择,如果他想在编辑器中打开一个文件,他更喜欢并想使用哪个编辑器。他只写类似于
notepad.exe
ultraedit.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文件?

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

Where does java gets the .exe source from?
这与java无关。检查操作系统中的
路径
环境变量。它具有所有exe文件的路径。 试试这个

1) 打开命令

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程序保持不变,如果(新文件(PATH).exists())Runtime.getRuntime().exec(“notepad.exe”+PATH)
我相信如果
路径中有一个空格
,该操作将失败。但总的来说,它是非常脆弱的代码。请务必访问链接自的Java World文章,并实现建议,以避免将来的痛苦。