Вызов библиотеки Java (JAR) из VBA / VBScript / Visual Basic Classic - PullRequest
7 голосов
/ 14 марта 2011

Есть библиотека jar

собственный порт C ++ еще не доступен (как DLL)

Мне нужно позвонить с

У меня есть 3 возможности:

1) Дождаться готовности собственного порта. 2) Использовать библиотеку JAR из VB через brigde (?), Требуется установить JRE. 3) Скомпилировать JAR в собственную DLL, используя GCJ, и использовать его из VBA

http://www.microsoft.com/germany/msdn/library/office/OfficeVBAUndDieWindowsAPI.mspx?mfr=true

Я думаю: пос.1 легко, но я должен ждать поз.3 на практике невозможно

Есть ли идеи по поводу поз.2?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 15 марта 2011

Это зависит от того, хотите ли вы вернуть значения из файла JAR или нет. Если вы не хотите и просто хотите выполнить метод, вы можете использовать «Shell» (или ShellExecute) из VB следующим образом:

Shell("java.exe -jar " & <yourJARFile>)

Если вам нужно вернуть значение, тогда вам, скорее всего, понадобится мост - подобное обсуждение здесь (для VB.NET, но принцип тот же): Можете ли вы использовать библиотеки Java в VB.net программа

Исходя из того, что большинство мостов, созданных людьми, предназначены для .NET, а не для VBA / 6, поэтому вам, возможно, потребуется как-то создать свой собственный файл или создать .NET DLL, которая затем будет использоваться вашим кодом VBA.

3 голосов
/ 17 августа 2013

Это можно выполнить с помощью макроса VBA, используя Obba . (Отказ от ответственности: я работаю над Obba).

0 голосов
/ 12 декабря 2014

Есть пара подходов, которые нужно использовать, когда вам нужны две разные технологии для разговора, перейдите к публикациям Objects / Methods, используя:

  • Corba & (или RMI или JMS)
  • SOAP
  • RESTful API
  • WebServices
  • Файл Обмен данными.
  • IPC Pipeline

В зависимости от сложности вы примете решение.

Вызов «java.exe» запускает библиотеку в ВМ, вы можете создать вывод, используя внешний ресурс, но только 3 первых предназначены для обмена объектами в гетерогенном решении.

...