在OSX上打开WebDAV word文件

时间:2015-12-07 21:14:04

标签: java macos ms-word webdav

我有一个Java应用程序可以在MS Word上打开WebDAV文件。这可以在Windows上使用下一个代码成功运行:

Runtime.getRuntime().exec("cmd /c start winword " + webdavUrl);

但在Mac OSX上,这是不可能的。我试过这个功能,但它只打开一个空白文档:

Runtime.getRuntime().exec(new String[]{"open", "-a", "Microsoft Word", webdavUrl});

如果我从URL创建文件,我可以打开该文件,但我失去了对WebDav URL的引用。

我找到了一个关于javascript代码的discussion,可以通过浏览器执行此过程。

有什么想法?

3 个答案:

答案 0 :(得分:5)

首先,您可以访问doc这个词的目录吗?你在挂载webdav吗?

我相信终端会寻找一条路径,这是你的webdavUrl。要进行调试,请尝试运行相同的命令,但只能使用-R和webdavUrl参数。

Runtime.getRuntime().exec(new String[]{"open", "-R", webdavUrl});

-R将在finder中显示该文件,这样您就知道该终端实际上​​可以导航到您的webdavUrl。

答案 1 :(得分:2)

您可以尝试以下方法之一:

1 :按照here所述使用桌面Api。

File myFile = new File(webdavUrl);
Desktop.getDesktop().open(myFile);

<强> 2 : 使用ms-word: uri详细here

例如,在浏览器中输入"ms-word:ofe|u|http://webdavUrl"。 如果您安装了Microsoft Office(2010 SP2 +),则应在加载文档时打开应用程序一词。

以下资源可能会有所帮助,因为它们涵盖了在webdav服务器中打开/编辑word文件的不同方法。

答案 2 :(得分:0)

经过近4周的调查,我成功地为这个问题开发了一个解决方案:

  1. 首先,在服务器端,创建一个端点,用IT HIT的javascript library打开word文档。此库使用Sharepoint Browser插件在Word 2011 for Mac OSX上使用Webdav协议打开文档。
  2. 现在在java上,使用控制台打开带有终点URL的Safari以打开word文档。为此,您可能需要将文档的URL作为终点的参数传递。

    Runtime.getRuntime().exec(new String[]{"open", "-a", "Safari", getWebdavUrl(document)});
    
    private static String getWebdavUrl(Document document) throws JSONException, UnsupportedEncodingException {
    
    RestClient client = RestClient.getClient();
    String baseUrl = client.SERVER_URL + "webdav_end_point";
    JSONObject params = new JSONObject();
    
    params.put("url", document.getUrl());
    
    //convert the JSON params to GET params for the URL
    String url = baseUrl + RestClient.buildParamsString(params);
    
    //https://wwww.example.com/webdav_end_point?url=www.example.com/path/to/webdav/document.docx
    return url;
    }
    
  3. 这允许在Word 2011上为MAC OSX打开文档,但如果您对文档版本有限制,则必须处理安全性和用户会话。无论如何,我成功地实现了这个解决方案,这是我发现完成整个过程的唯一解决方案。