powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Эксепшн при работе с Com4j
25 сообщений из 62, страница 1 из 3
Эксепшн при работе с Com4j
    #39548382
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Смотрю как в java создавать COM-объекты, и наткнулся на библиотеку Com4j. Нашёл пример в сети http://parshinpn.pro/content/primer-ispolzovaniya-biblioteki-com4j . Попытался его сделать, но он у меня не работает. Выдаётся эксепшн (скопировал то, что было в консоли ИДЕИ):
Введите текст:
тест
Exception in thread "main" com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance failed : Класс не зарегистрирован : .\com4j.cpp:153
at com4j.ComThread.execute(ComThread.java:203)
at com4j.Task.execute(Task.java:25)
at com4j.COM4J.createInstance(COM4J.java:97)
at com4j.COM4J.createInstance(COM4J.java:72)
at org.limantrade.voc.ClassFactory.createDictionary(ClassFactory.java:16)
at org.limantrade.Com4j_integrate.initLibrary(Com4j_integrate.java:39)
at org.limantrade.Com4j_integrate.main(Com4j_integrate.java:169)
Caused by: com4j.ComException: 80040154 CoCreateInstance failed : Класс не зарегистрирован : .\com4j.cpp:153
at com4j.Native.createInstance(Native Method)
at com4j.COM4J$CreateInstanceTask.call(COM4J.java:117)
at com4j.COM4J$CreateInstanceTask.call(COM4J.java:104)
at com4j.Task.invoke(Task.java:51)
at com4j.ComThread.run0(ComThread.java:153)
at com4j.ComThread.run(ComThread.java:134)

Process finished with exit code 1

Все шаги выполнил, ошибок на них не выдавало.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548384
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLich,

Regsvr32
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548385
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman,
Так я же написал: все шаги выполнил, в том числе и регистрация нужны dll.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548448
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichUsman,
Так я же написал: все шаги выполнил, в том числе и регистрация нужны dll.
значит ещё ищи рабочий пример. Не с твоей dll, а именно с той dll-com что в примере.
- Можно COM IE\Excell\Word для примера взять
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548476
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, То есть вы предполагаете, что ошибки в dll или в примере? Не уверен, но мне кажется, что я что-то не то сделал, или наоборот - не сделал то, что нужно было сделать....
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548485
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichчто я что-то не то сделалтелепаты в отпуске, хрустальные шары не фурычат...
короче, исходники в студию (:
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548528
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichВсе шаги выполнил, ошибок на них не выдавало.В руководстве, которое вы использовали есть стандартный косяк: первая регистрация делается "с повышением привилегий", а не "Win+R".

P.S. "С повышением привилегий" это "Запуск от имени администратора" для "Командная строка" и уже в этой консоли regsvr32.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548529
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman,
Так что там выкладывать. Половина кода сгенерировалось само, половина кода было дано в примере (и я его просто скопировал). Все.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548557
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Попробовал опять зарегистрировать, уже с правами администратора (не помню, как раньше то делал), и не помогло, к сожалению.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548559
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На другом форуме спросили про разрядности ос, джавы и длл. У меня они отличаются. Это может быть причиной?
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39548569
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichНа другом форуме спросили про разрядности ос, джавы и длл. У меня они отличаются. Это может быть причиной?Вполне. Попробуйте поставить 32-битную JDK, перенастройте и перезапустите IDE.
Разрядность ОС может быть любой.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39549174
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman,
Ааа, вот оно что (я про разряздность ОС). А то я уже поставил виртуалку 32-битную по этому поводу. Хорошо, попробую всякое. Спасибо за совет.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39549252
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaxLich, Попробовал на 32-разрядной винде с 32-разрядной JVM - всё отработало без ошибок. Значит, в этом было дело.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39549270
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLich,
Странно. Вроде все знают, что на Ось 32 надо ставить 32 а не 64.
Удачи!
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39549306
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь о другом - разрядность JVM обязана совпадать с разрядностью JNI модулей.
Если 64-разрядная винда, то 32-разрядные dll-ки требуют 32-разрядной JVM. А по-умолчанию будет 64-разрядная.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39549339
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
А как это практически?
- установил винду 64. Дальше?
Я с сйта оракла брал jdk 64.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39549389
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123А как это практически?
- установил винду 64. Дальше?Дальше грузим и ставим 32-разрядную (i586). Выбираем нужное настройками среды разработки/запуска.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550125
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
так у меня 64-битная винда.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550126
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovРечь о другом - разрядность JVM обязана совпадать с разрядностью JNI модулей.
Если 64-разрядная винда, то 32-разрядные dll-ки требуют 32-разрядной JVM. А по-умолчанию будет 64-разрядная.
Что-то не работает на 64-битной винде, если джава машина - 32-битная. Так значит, винда тоже влияет? Может 32-битные dll не регистрируются в 64-битной системе?
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550185
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё 32-битное нормально регистрируется в 64-разрядной винде. Там даже есть специальная "виртуализация", чтобы "подставлять" 32-разрядным приложениям "нужные каталоги".
Ошибка-то какая? Ну и хотелось бы, чтобы опции запуска включали -showversion, чтобы не гадать о разрядности JVM по трассировке стека.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550226
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichТак значит, винда тоже влияет?Для Java-приложения платформой считается JVM (а не ОС).
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550238
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВсё 32-битное нормально регистрируется в 64-разрядной винде.
Точно так тогда должно работать и с приложениями под java - Java HotSpot 64-bit Server VM.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550320
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Точно так тогда должно работать и с приложениями под java - Java HotSpot 64-bit Server VM.Это невозможно технически: нельзя грузить 32-разрядные библиотеки в пространство 64-разрядного процесса. И наоборот - тоже нельзя.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550687
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
Что-то не очень понял. То Вы говорите:
авторВсё 32-битное нормально регистрируется в 64-разрядной винде. Там даже есть специальная "виртуализация", чтобы "подставлять" 32-разрядным приложениям "нужные каталоги".

то:
авторЭто невозможно технически: нельзя грузить 32-разрядные библиотеки в пространство 64-разрядного процесса. И наоборот - тоже нельзя.

UsmanMaxLichТак значит, винда тоже влияет?Для Java-приложения платформой считается JVM (а не ОС).
Причём тут JVM, если dll регистрируется в винде.


авторОшибка-то какая? Ну и хотелось бы, чтобы опции запуска включали -showversion, чтобы не гадать о разрядности JVM по трассировке стека. Так 32-битная. Сам ставил, сам выбирал в настройках IDEA.

А ошибка - та же.
...
Рейтинг: 0 / 0
Эксепшн при работе с Com4j
    #39550692
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaxLich,

C:\Users\user>java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Эксепшн при работе с Com4j
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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