在远程数据库中打开文件

时间:2017-03-23 14:27:24

标签: java database file access

我有java桌面应用程序,我有文件上传和查看功能。 这是我打开文件的代码

 public static boolean open(File file) {
    OSDetector osdetector = new OSDetector();
    try {
        if (osdetector.isWindows()) {
            Runtime.getRuntime().exec(new String[]{"rundll32", "url.dll,FileProtocolHandler",
                file.getAbsolutePath()});
            return true;
        } else if (osdetector.isLinux() || osdetector.isMac()) {
            Runtime.getRuntime().exec(new String[]{"/usr/bin/open",
                file.getAbsolutePath()});
            return true;
        } else // Unknown OS, try with desktop
        if (Desktop.isDesktopSupported()) {
            Desktop.getDesktop().open(file);
            return true;
        } else {
            return false;
        }
    } catch (Exception e) {
        e.printStackTrace(System.err);
        return false;
    }
}

这在MAC OS中完全有效,但是当我在Windows 7 PC上运行时,它将无法打开文件。 以下是错误消息;

Adob​​e Reader错误:“打开此文档时出错。此文件已被其他应用程序打开或正在使用”

Windows照片查看器错误消息:“Windows照片查看器无法打开此照片,因为正在使用其他程序编辑照片”

绘制错误消息:“访问时发生共享冲突.....”

请帮忙

谢谢

1 个答案:

答案 0 :(得分:1)

Windows无法同时使用一个文件来处理两个程序的想法,可能是因为它的DOS单用户来源。确保在保存文件时,在调用open()方法之前将其关闭