Java:运行/打开/编辑任何文件

Java:运行/打开/编辑任何文件,java,Java,使用Java程序,我需要运行/打开/编辑任何文件。这应该有类似的效果,双击文件浏览器中的文件,操作系统将执行文件,如果它是一个可执行文件或打开/编辑它在各自的注册程序 我尝试了Runtime.exec()方法(见下面),但该方法只运行可执行文件。我需要我的来运行任何文件。这包括文本文件、音频文件、图片等 我尝试了以下方法: Runtime.getRuntime().exec("README.txt"); 你有没有想过用? 例如 if (Desktop.isDesktopSupported())

使用Java程序,我需要运行/打开/编辑任何文件。这应该有类似的效果,双击文件浏览器中的文件,操作系统将执行文件,如果它是一个可执行文件或打开/编辑它在各自的注册程序

我尝试了Runtime.exec()方法(见下面),但该方法只运行可执行文件。我需要我的来运行任何文件。这包括文本文件、音频文件、图片等

我尝试了以下方法:

Runtime.getRuntime().exec("README.txt");

你有没有想过用?

例如

if (Desktop.isDesktopSupported()) {
    try {
        if (Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) {
            Desktop.getDesktop().edit(new File("Readme.txt"));
        }
        // or...
        if (Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
            Desktop.getDesktop().open(new File("Readme.txt"));
        }
    } catch (IOException exp) {
        exp.printStackTrace();
    }
}

这将尝试打开/编辑指定文件的OS指定编辑器中的文件

是否考虑使用?

例如

if (Desktop.isDesktopSupported()) {
    try {
        if (Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) {
            Desktop.getDesktop().edit(new File("Readme.txt"));
        }
        // or...
        if (Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
            Desktop.getDesktop().open(new File("Readme.txt"));
        }
    } catch (IOException exp) {
        exp.printStackTrace();
    }
}

这将尝试在操作系统指定的编辑器中打开/编辑给定文件的文件

。请记住,
*.txt
不是操作系统可以“运行”的可执行文件格式。根据操作系统的不同,有很多种方法可以实现这一点,但这会使代码变得非常混乱,难以维护……无需否决这个问题。这是一个合法的问题。(您只能在可执行文件上使用
exec
。对于其他文件,您必须正确标识显示它们所需的程序。例如,文本文件需要类似于
notepad.exe
)此外,请记住,
*.txt
不是操作系统可以“运行”的可执行文件格式。根据操作系统的不同,有很多种方法可以实现这一点,但这会使代码变得非常混乱,难以维护……无需否决这个问题。这是一个合法的问题。(您只能在可执行文件上使用
exec
。对于其他文件,您必须正确标识显示它们所需的程序。例如,文本文件需要类似于
notepad.exe
)的内容。您可能还需要添加一个检查,以查看相应的操作是否正确supported@GladwinB什么,输入更多!!?;)首先检查文件是否是可执行文件,如果不是,则仅使用open/edit。这取决于需要实现什么,这可能会进入完全相切的讨论,所以我们不再进一步讨论。注意,我已经投票支持您的解决方案:-)@GladwinB,这取决于操作系统,并且通常是特定于操作系统的,此外,open实际上可以执行run可执行命令。在这一点上,如果没有进一步的上下文,我不确定它是否真的存在。您可能还需要添加一个检查,以查看相应的操作是否正确supported@GladwinB什么,输入更多!!?;)首先检查文件是否是可执行文件,如果不是,则仅使用open/edit。这取决于需要实现什么,这可能会进入完全相切的讨论,所以我们不再进一步讨论。注意,我已经投票支持您的解决方案:-)@GladwinB,这取决于操作系统,并且通常是特定于操作系统的,此外,open实际上可以执行run可执行命令。在这一点上,没有进一步的背景,我不确定它实际上是一个事件