у нас есть старое унаследованное приложение, которое использует обновление 45 для Java версии 1.6 (jdk-6u45-windows-i586.exe) и Jacob.dll 1.8 (jacob_18.zip) и не может быть обновлено: (
До последнего обновления Windows 10 1809 все работало нормально. С тех пор поведение комобъекта, похоже, изменилось и приводит к ошибке, а также к тому, что документ word больше не сохраняется. Я также пробовал 19H1, но получил ту же ошибку.
Я мог бы воспроизвести проблему в Java с помощью следующего кода, конечно, вы должны импортировать Jacob.dll:
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Variant;
import com.jacob.com.Dispatch;
ActiveXComponent oWord = new ActiveXComponent("Word.Application");
oWord.setProperty("Visible", new Variant(true));
Dispatch documents = oWord.getProperty("Documents").toDispatch();
String str_file = "C:/temp/test.rtf";
Dispatch doc = Dispatch.invoke(documents, "Open", Dispatch.Method,
new Object[]{str_file},
new int[1]).toDispatch();
Я получаю ошибку:
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Open
Description: An unknown COM error has occured.
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:384)
at com.jacob.com.Dispatch.invoke(Dispatch.java:267)
at Main.main(Main.java:21)
Когда я нажимаю на «Ошибки отправки», я вижу только то, что это неверный номер строки в com.jacob.com.Dispatch
Я знаю, что это не лучший день, когда не обновляется само устаревшее приложение, но что можетЯ говорю, это так, как есть.
Есть идеи, что могло измениться в Windows> = 1809 или как это можно решить, не касаясь приложения?
Спасибо
Стефан
Редактировать:
Дисpatch oDocument = Dispatch.call (документы, «Открыть», str_file) .toDispatch ();приводит к той же ошибке
Я должен упомянуть, что Word открывается, но я не могу сохранить файл и возвращаемое значение является ошибкой