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




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

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

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

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

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

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

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

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

в доке к jawinу есть примеры
дока поставляется всесте с ним
...
Рейтинг: 0 / 0
01.02.2006, 15:49
    #33516534
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
М.ГоловановА зачем прибивать?... Пусть себе болтается, пока автоматически не вычистится. Вы вызвали close(), соответственно был вызван метод release() на COM объекте, объект освобожден. Больше ничего не надо.
Дело в том, что много клиентов на сервере могут создать много объектов(-серверов), и будет либо OutOfMemoryException, либо просто неконтроллируемый memory leak! Поэтому хотелось бы убивать объект сразу же после окончания работы с ним!
...
Рейтинг: 0 / 0
01.02.2006, 15:56
    #33516563
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
почитайте как работает СОМ и 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
01.02.2006, 16:24
    #33516674
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
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
01.02.2006, 16:28
    #33516688
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
а какой-нить метод типа app. dispose () там есть?
...
Рейтинг: 0 / 0
01.02.2006, 16:35
    #33516712
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
А.Грасоff™а какой-нить метод типа app. dispose () там есть?
неа
...
Рейтинг: 0 / 0
01.02.2006, 16:36
    #33516718
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
Мож у самого эксельного сервака есть какой-нить метод типа Disconnect, Terminate или Close??????????????????????????????
...
Рейтинг: 0 / 0
01.02.2006, 16:42
    #33516745
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
I am Razorсамого эксельного сервака
вообще, у него есть метод Excel::Quit();
...
Рейтинг: 0 / 0
01.02.2006, 17:25
    #33516894
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
Вам дали интерфейс общения с ком объектом, предполагалось что Вы умеете с ним работать

вот ексель тоже должен закрываться
Код: 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
01.02.2006, 17:38
    #33516950
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
Вот про метод Quit я и спрашивал!
Спасибо
...
Рейтинг: 0 / 0
01.02.2006, 17:39
    #33516960
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хочу COM
А с Com-объектами я умею работать, но у меня нет документача по Excel, и про метод Quit я ничего не знал
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / хочу COM / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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