在 Java 上使用外部应用程序打开文件

发布于 2024-07-10 14:44:51 字数 78 浏览 7 评论 0原文

当您不知道文件与哪个应用程序关联时,如何从 java 应用程序打开文件。 另外,因为我使用的是 Java,所以我更喜欢独立于平台的解决方案。

How do you open a file from a java application when you do not know which application the file is associated with. Also, because I'm using Java, I'd prefer a platform independent solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

べ映画 2024-07-17 14:44:51

对于 JDK1.6,java.awt。 Desktop 类可能很有用。

public static void open(File document) throws IOException {
    Desktop dt = Desktop.getDesktop();
    dt.open(document);
}

With JDK1.6, the java.awt.Desktop class can be useful.

public static void open(File document) throws IOException {
    Desktop dt = Desktop.getDesktop();
    dt.open(document);
}
所有深爱都是秘密 2024-07-17 14:44:51
File file
Desktop.getDesktop().open( file );

从 Java 1.6 开始

,您可以检查这个问题

摘要

它看起来像这样:

Runtime.getRuntime().exec( getCommand( file ) );

public String getCommand( String file ){ 
    // Depending on the platform could be
    //String.format("gnome-open %s", fileName)
    //String.format("open %s", fileName)
    //String.format("cmd /c start %s", fileName)
    // etc. 
}
File file
Desktop.getDesktop().open( file );

Since Java 1.6

Previous to that you could check this question

Summary

It would look something like this:

Runtime.getRuntime().exec( getCommand( file ) );

public String getCommand( String file ){ 
    // Depending on the platform could be
    //String.format("gnome-open %s", fileName)
    //String.format("open %s", fileName)
    //String.format("cmd /c start %s", fileName)
    // etc. 
}
一桥轻雨一伞开 2024-07-17 14:44:51

您可以在 Windows 上使用 bat 文件以及在 Unix 上使用同等文件来破解一些东西,但这并不是那么有趣。

我认为最好的选择是 JDesktop 集成组件 (JDIC)。 特别是, 桌面< /a> 类正是您正在寻找的方法。

编辑:显然,我落后于时代了,因为这已经集成到 Java 1.6 中了。 无论如何,如果您使用的是早期的 Java,它可能仍然有用。

You could hack something together with a bat file on Windows and equivalent on Unix, but that wouldn't be that fun.

I think your best bet would be the JDesktop Integration Components (JDIC). In particular, the Desktop class has exactly the method you're looking for.

EDIT: Apparently, I'm behind the times because this has been integrated into Java 1.6. In any case, if you're working in an earlier Java, it may still be useful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文