Calling Java library (JAR) from VBA/VBScript/Visual Basic Classic
Asked Answered
H

3

7

There is jar library

native C++ port is not yet available (as DLL)

I need to call from

I have 3 possibilities:

1) Wait until native port is ready 2) Use JAR library from VB via brigde (?), installed JRE required 3) Compile JAR into native DLL using GCJ and use it form VBA

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

I think: pos. 1 is easy, but I must wait pos. 3 is in practice impossible

Is there some ideas about pos. 2?

Thanks.

Highly answered 14/3, 2011 at 10:26 Comment(0)
J
5

It depends on whether you wish to return values from the JAR file or not. If you do not, and just wish to execute a method then you can use a "Shell" (or ShellExecute) from VB as follows:

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

If you do need to return a value then you will more than likely need a bridge - similar discussion here (for VB.NET, but principle is the same): Can you use Java libraries in a VB.net program?

Based on that most bridges that people have created are for .NET and not for VBA/6 so you would maybe need to create your own somehow, or perhaps create a .NET DLL that is then consumed by your VBA code.

Judon answered 15/3, 2011 at 11:42 Comment(1)
VBA jar Dateiaufruf (DE) and Java aus VB-Script startenHighly
C
3

This can be performed via a VBA macro using Obba. (Disclaimer: I am working on Obba).

Charles answered 16/8, 2013 at 20:0 Comment(0)
D
0

There are couple approaches to be used when you require 2 different technologies to speak, go for Objects/Methods publications using:

  • Corba & (or RMI or JMS)
  • SOAP
  • RESTful API
  • WebServices
  • File Data exchange.
  • IPC Pipeline

Depending on the complexity you will take your solution.

Calling 'java.exe' runs the library in a VM, you can produce an output using a external resource but only the 3 first are meant to exchange objects in a heterogen solution.

Dermatologist answered 12/12, 2014 at 15:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.