Тормоза при открытии файлов Word/Excel
От: Blazkowicz Россия  
Дата: 11.03.05 08:53
Оценка:
Всем привет.

Значит так
Создаётся временный файл:
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
fileOutputStream.write(cmsFile.getContent());
fileOutputStream.close();


Запускается из программы (под виндой естественно) любым из двух способов:
//String cmd = "cmd /c \"" + tempFile.getAbsolutePath() + "\"";
String cmd = "rundll32 url.dll,FileProtocolHandler \"" + tempFile.getCanonicalPath() + "\"";
Process process = Runtime.getRuntime().exec(cmd);


Далее выгребается поток:
InputStream is = process.getInputStream();
int count = is.read(barray);
while (count > 0)
{
   count = is.read(barray);
}
is.close();
process.waitFor();


Всё работает нормально, но при открытии файлов doc/xls Word-ом/Excel-ем происходит задержка на пол минуты. Грешил на офис, попробовал, но VSD (Visio) открывается нормально, так же быстро как pdf, txt. Так же нормально файлы открывает OpenOffice а не MS Word и MS Excel.

Кто-нибудь сталкивался? Что это может быть?

Спасибо.
Re: Тормоза при открытии файлов Word/Excel
От: CheGa  
Дата: 11.03.05 09:13
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Всё работает нормально, но при открытии файлов doc/xls Word-ом/Excel-ем происходит задержка на пол минуты. Грешил на офис, попробовал, но VSD (Visio) открывается нормально, так же быстро как pdf, txt. Так же нормально файлы открывает OpenOffice а не MS Word и MS Excel.


Может есть возможность запускать скрытый процесс "пустого" ворда или экселя ДО открытия файла?.. во время запуска программульки, например.
Думаю это существенно ускорило бы открытие файла (проверить сейчас не могу).
winamp играет Океан Эльзи — Там де нас нема
Заранее спасибо за ответ...
Re[2]: Тормоза при открытии файлов Word/Excel
От: Blazkowicz Россия  
Дата: 11.03.05 09:18
Оценка:
Здравствуйте, CheGa, Вы писали:

CG>Может есть возможность запускать скрытый процесс "пустого" ворда или экселя ДО открытия файла?.. во время запуска программульки, например.

CG>Думаю это существенно ускорило бы открытие файла (проверить сейчас не могу).

Программно не пробовали, но при уже запущеном офисе скорость не увеличивается. Всё повторяется на разных машинах. То есть на единичный глюк отже грешить нельзя.
Re[3]: Тормоза при открытии файлов Word/Excel
От: dualsoul  
Дата: 11.03.05 13:15
Оценка:
а почему не попробовать java desctop components?
вроде там были компоненты для запуска ассоциированной с типом программы, вроде где-то здесь: https://jdic.dev.java.net/

B>Здравствуйте, CheGa, Вы писали:


CG>>Может есть возможность запускать скрытый процесс "пустого" ворда или экселя ДО открытия файла?.. во время запуска программульки, например.

CG>>Думаю это существенно ускорило бы открытие файла (проверить сейчас не могу).

B>Программно не пробовали, но при уже запущеном офисе скорость не увеличивается. Всё повторяется на разных машинах. То есть на единичный глюк отже грешить нельзя.
Re: Тормоза при открытии файлов Word/Excel
От: Бизон  
Дата: 11.03.05 14:20
Оценка:
Может быть антивирус какой запущен?
Re[2]: Тормоза при открытии файлов Word/Excel
От: Blazkowicz Россия  
Дата: 11.03.05 14:23
Оценка:
Здравствуйте, Бизон, Вы писали:

Б>Может быть антивирус какой запущен?


На разных машинах, разные авнтивирусы стоят. И влияет только на Word/Excel. Осальное нормально работает. Так что это вряд ли.
Re[4]: Тормоза при открытии файлов Word/Excel
От: Blazkowicz Россия  
Дата: 11.03.05 14:25
Оценка:
Здравствуйте, dualsoul, Вы писали:

D>а почему не попробовать java desctop components?

D>вроде там были компоненты для запуска ассоциированной с типом программы, вроде где-то здесь: https://jdic.dev.java.net/

Да. Попробую, но к сожалению позже. Сейчас требуется быстро создать прототип. Когда будем делать проект обязательно попробую и сообщу результаты.
Re: Тормоза при открытии файлов Word/Excel
От: Blazkowicz Россия  
Дата: 11.03.05 16:59
Оценка:
Значит так. Порешалось. Грабли были там где их никто не ждал...

Всё это дело запускалось в SWT. Происходила синхронизация с диспатчером событий (копи-паст чтоб его так ).
shell.getDisplay().asyncExec(new Runnable()...);

Заменил на
new Thread(new Runnable()...).start();

Всё стало на свои места. Огромное спасибо Luckerу за помощь в разгребании бага.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.