powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / хочу COM
16 сообщений из 16, страница 1 из 1
хочу COM
    #33508069
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понимаю, что java платформенно-независимая, но может быть есть какие-нить пакеты, которые могут создать COM-объект. Естественно, что создаваться он будет под виндой.
...
Рейтинг: 0 / 0
хочу COM
    #33508086
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I
> Я понимаю, что java платформенно-независимая, но может быть есть
> какие-нить пакеты, которые могут создать COM-объект. Естественно,
> что создаваться он будет под виндой.Тема==Ответить




http://danadler.com/jacob/
первая ссылка из гугла по фразе java com

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
хочу COM
    #33508167
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я бы посоветовал jawin на sf.net поищи

у jacobа память утекала
пробовал пару месяцев назад несколько его версий везде были проблемы

jawin отлично работает!
используется в коннекторе к БД которая отдает результат только в виде xml
...
Рейтинг: 0 / 0
хочу COM
    #33516315
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vfabrя бы посоветовал jawin на sf.net поищи

у jacobа память утекала
пробовал пару месяцев назад несколько его версий везде были проблемы

jawin отлично работает!
используется в коннекторе к БД которая отдает результат только в виде xml
Благодарю, jawin - отличная библиотека! Только вот проблема образовалась, после создания COM-объекта не могу удалить его! Я пытаюсь сделать
Код: plaintext
obj.close();//у объекта DispathPtr есть такой метод, только я пока не понял что он делает :)
и потом
Код: plaintext
obj= null ;
и garbage collector его не убивает!
Как же его прибить???
...
Рейтинг: 0 / 0
хочу COM
    #33516505
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем прибивать?... Пусть себе болтается, пока автоматически не вычистится. Вы вызвали close(), соответственно был вызван метод release() на COM объекте, объект освобожден. Больше ничего не надо.
...
Рейтинг: 0 / 0
хочу COM
    #33516526
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по идее СОМ объект должен умирать сам

нужно убивать не диспечер, а объект в который вы положили данные полученные от СОМ объекта

в доке к jawinу есть примеры
дока поставляется всесте с ним
...
Рейтинг: 0 / 0
хочу COM
    #33516534
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.ГоловановА зачем прибивать?... Пусть себе болтается, пока автоматически не вычистится. Вы вызвали close(), соответственно был вызван метод release() на COM объекте, объект освобожден. Больше ничего не надо.
Дело в том, что много клиентов на сервере могут создать много объектов(-серверов), и будет либо OutOfMemoryException, либо просто неконтроллируемый memory leak! Поэтому хотелось бы убивать объект сразу же после окончания работы с ним!
...
Рейтинг: 0 / 0
хочу COM
    #33516563
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почитайте как работает СОМ и JNI и Вам должно стать все ясно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 try  {
  Ole32.CoInitialize();
  DispatchPtr app =  new  DispatchPtr("new:PowerPoint.Application");
  .....
  Ole32.CoUninitialize();
}  catch  (Exception e) {
  e.printStackTrace();
}

если так будете делать (при условии что СОМ объект работает правильно) и у Вас невозникнет никаких проблем
...
Рейтинг: 0 / 0
хочу COM
    #33516674
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vfabrпочитайте как работает СОМ и JNI и Вам должно стать все ясно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 try  {
  Ole32.CoInitialize();
  DispatchPtr app =  new  DispatchPtr("new:PowerPoint.Application");
  .....
  Ole32.CoUninitialize();
}  catch  (Exception e) {
  e.printStackTrace();
}

если так будете делать (при условии что СОМ объект работает правильно) и у Вас невозникнет никаких проблем
Я делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
        Ole32.CoInitialize();
        
        DispatchPtr app =  new  DispatchPtr("Excel.Application");
         try {
          //app.put("Visible", true);
          DispatchPtr books = (DispatchPtr)app.get("Workbooks");
          DispatchPtr book =  null ;
          book=
            (DispatchPtr) books.invoke(
              "Open", "some.xls");
          DispatchPtr sheets = (DispatchPtr)book.get("Worksheets");
          DispatchPtr sheet =  null ;
          DispatchPtr cell= null ;
          DispatchPtr item= null ;
          sheet=(DispatchPtr)sheets.get("Item","somelist");
          cell=(DispatchPtr)sheet.get("Cells");
          item=(DispatchPtr)cell.getN("Item", new  Object[] { new  Integer( 1 ), new  Integer( 1 )});
          item.put("value","somevalue");

           //run a macros
          app.invoke("Run","somemacros");
          
          book.invoke("Save");
          
          book.invoke("Close");
          books.invoke("Close");
          
          item.close();
          item= null ;
          cell.close();
          cell= null ;
          sheet.close();
          sheet =  null ;
          sheets.close();
          sheets= null ;
          book.close();
          book =  null ;
          books.close();
          books =  null ;
          app.close();
          app =  null ;
          
          Ole32.CoUninitialize();

И эксельный сервак остается висеть в задачах!
Утечка памяти, в чём дело??? Я чё-то делаю не так??????
...
Рейтинг: 0 / 0
хочу COM
    #33516688
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой-нить метод типа app. dispose () там есть?
...
Рейтинг: 0 / 0
хочу COM
    #33516712
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™а какой-нить метод типа app. dispose () там есть?
неа
...
Рейтинг: 0 / 0
хочу COM
    #33516718
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мож у самого эксельного сервака есть какой-нить метод типа Disconnect, Terminate или Close??????????????????????????????
...
Рейтинг: 0 / 0
хочу COM
    #33516745
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I am Razorсамого эксельного сервака
вообще, у него есть метод Excel::Quit();
...
Рейтинг: 0 / 0
хочу COM
    #33516894
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам дали интерфейс общения с ком объектом, предполагалось что Вы умеете с ним работать

вот ексель тоже должен закрываться
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 try  {
      Ole32.CoInitialize();
      DispatchPtr app =  new  DispatchPtr("PowerPoint.Application");
      app.put("Visible", true);
      DispatchPtr preses = app.getObject("Presentations");
      DispatchPtr pres = (DispatchPtr) preses.invoke("add", - 1 );
      DispatchPtr slides = pres.getObject("Slides");
      DispatchPtr slide = (DispatchPtr) slides.invoke("Add",  1 ,  2 );
      DispatchPtr shapes = slide.getObject("Shapes");
      DispatchPtr shape = (DispatchPtr) shapes.invoke("Item",  1 );
      DispatchPtr frame = shape.getObject("TextFrame");
      DispatchPtr range = frame.getObject("TextRange");
      range.put("Text", "Using Jawin to call COM objects");
// закрывает приложение     
 app.invoke("Quit");
      Ole32.CoUninitialize();
    }
     catch  (Exception e) {
      e.printStackTrace();
    }
грасов правильно написал (странно было бы если бы наоборот :-))
...
Рейтинг: 0 / 0
хочу COM
    #33516950
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот про метод Quit я и спрашивал!
Спасибо
...
Рейтинг: 0 / 0
хочу COM
    #33516960
I am Razor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с Com-объектами я умею работать, но у меня нет документача по Excel, и про метод Quit я ничего не знал
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / хочу COM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]