Вызов библиотеки 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 первых предназначены для обмена объектами в гетерогенном решении.