Подтвердить что ты не робот

Открыть текстовый файл WebDAV на OSX

У меня есть приложение Java, которое открывает файлы WebDAV в MS Word. Это успешно работает в Windows со следующим кодом:

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

Но на Mac OSX это невозможно. Я попробовал эту функцию, но она открывает только пустой документ:

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

если я создам файл из URL-адреса, я могу открыть файл, но я теряю ссылку на URL-адрес WebDav.

Я нашел обсуждение о javascript-коде, который может сделать этот процесс из браузера.

Любые мысли?

4b9b3361

Ответ 1

Во-первых, вы можете получить доступ к каталогу, в котором находится слово doc? вы устанавливаете свой webdav?

Я считаю, что терминал будет искать путь, который является вашим webdavUrl. Для отладки попробуйте запустить ту же команду, но только с аргументами -R и webdavUrl.

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

-R покажет файл в finder и таким образом вы знаете, что терминал может фактически перейти к вашему webdavUrl.

Ответ 2

Вы можете попробовать одно из следующих действий:

1: используйте Desktop Api, как описано здесь.

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

2: Используйте ms-word: uri в качестве подробного здесь.

Например, введите "ms-word:ofe|u|http://webdavUrl" в свой браузер. Если у вас установлен Microsoft Office (2010 SP2 +), это должно открыть приложение Word с загруженным документом.

Следующие ресурсы могут быть полезны, поскольку они охватывают различные способы открытия/редактирования файлов слов на сервере webdav.

Ответ 3

После почти 4 недель исследования я успешно разработал решение этой проблемы:

  • Во-первых, на стороне сервера создайте конечную точку, чтобы открыть документ слова с помощью библиотеки html javascript . Эта библиотека использует плагин Sharepoint Browser для открытия документа в Word 2011 для Mac OSX с помощью протокола Webdav.
  • Теперь на java, используйте консоль, чтобы открыть Safari с URL-адресом конечной точки, чтобы открыть документ слова. Для этого, возможно, вам нужно передать 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;
    }
    

Это позволяет открыть документ в Word 2011 для MAC OSX, но вам придется иметь дело с безопасностью и сеансом пользователя, если у вас есть ограничения на издание документа. Во всяком случае, я реализовал это решение успешно, и это единственное решение, которое я нашел, которое завершает процесс.