vbadlljargcj

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


I'm working with a JAR library, but a native C++ port (as a DLL) isn't available yet.

I need to access this functionality from VBA, and I'm considering three options:

  1. Wait for the native port to be completed.
  2. Access the JAR library from VBA through a bridge (requiring an installed JRE).
  3. Compile the JAR into a native DLL using GCJ, then call it from VBA (although I think this is practically unfeasible).

I believe option 1 would be the easiest, though it requires waiting. Option 3 seems impractical.

Could you provide any insights or suggestions regarding option 2? Specifically, I'm interested in setting up a reliable bridge between VBA and the JAR library.

Thanks for your assistance!


Solution

  • 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.