Вызов библиотеки Java (JAR) из VBA/VBScript/Visual Basic Classic

Есть баночная библиотека

собственный порт 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 ответа

Решение

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

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

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

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

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

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

  • Корба & (или RMI или JMS)
  • МЫЛО
  • RESTful API
  • WebServices
  • Обмен данными с файлами.
  • IPC Pipeline

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

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

Другие вопросы по тегам