Lucas
Lucas

Reputation: 3119

Using Java JAR libraries with C++

I'm developing a win32 C++ application that needs to export data to excel spreadsheets. There isn't a mature C++ library for this, but exists for Java. How I can integrate a C++ application with Java code, in such way that I can call Java functions from my C++ application?

Upvotes: 1

Views: 1436

Answers (5)

aviv
aviv

Reputation: 2809

You can also generate a simple html file, save it as .xls and excel will know to read it. e.g: <table><tr><td>cell a</td><td>cell b</td></table>

And then no need for executing Java and external programs.

Upvotes: 3

Mark
Mark

Reputation: 29119

How To Call Java Functions From C Using JNI might get you started.

However I would agree with NickLarsen that having separate processes would be a lot cleaner and simpler.

Upvotes: 0

sdg
sdg

Reputation: 4723

If you are merely exporting data, you might find it simpler to just emit CSV or other files that Excel can ingest, instead of a full-blown Excel file.

Upvotes: 1

Nick Larsen
Nick Larsen

Reputation: 18877

Another solution might be to create a client in C++ and a server in Java. I have done the opposite of this (java client, c++ server) for a solution once, but we only sent along small amounts data each request, so I am not sure how this would adapt to your problem, but just for the sake of thought.

Upvotes: 1

Sorantis
Sorantis

Reputation: 14702

See this and this

First is Creating a Child Process with Redirected Input and Output article

Second is How to spawn console processes with redirected standard handles.

Good reading in general, might solve your problem.

Example

HINSTANCE hInst = ShellExecute(NULL, "open", "path\\to\\java.exe", "-jar path\to\lib.jar WORLD", NULL, SW_SHOWMAXIMIZED);

Upvotes: 1

Related Questions