This sample provides Java "Hello World" program that is invoked | |
from C# application in the same process. | |
The problem of direct call of the JVM API from CLR applications | |
by PInvoke interface is the JVM API functions do not have static | |
adresses, they need to be got by JNI_CreateJavaVM() call. | |
The sample contains C++ libraty that wraps JVM API calls by the | |
static functions that are called from the C# application by | |
PInvoke interface. | |
The sample contains the following files: | |
Makefile - make file | |
README.txt - this readme | |
invoked.java - the invoked HelloWorld Java program | |
invoker.cs - C# invoker application | |
jinvoker.cpp - C++ wrapper | |
jinvokerExp.h - wrapper library exports | |
After the success making the following files are produced: | |
invoked.class - the compiled HelloWorld class | |
invoker.exe - the executable .NET program that invokes Java | |
jinvoker.dll - the wrapper library | |
The following environment needs to be set for the correct sample | |
build and execution: | |
INCLUDE must contain the paths to: | |
1. MS Visual C++ standard include | |
2. .NET SDK include | |
3. Java includes | |
Example: %MSDEV%/VC98/Include;%DOTNET%/Include;%JAVA_HOME%/include;%JAVA_HOME%/include/win32 | |
LIB must contain the paths to: | |
1. MS Visual C++ standard libraries | |
2. .NET SDK libraries | |
3. jvm.dll | |
Example: %MSDEV%/VC98/Lib;%DOTNET%/Lib;%JAVA_HOME%/jre/bin/client | |
PATH must contain the paths to: | |
1. MS Visual C++ standard bin | |
2. MS Dev common bin | |
3. .NET SDK libraries | |
4. Java bin | |
5. jvm.dll | |
Example: %MSDEV%/VC98/Bin;%MSDEV%/Common/MSDev98/Bin;%DOTNET%/Lib;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin/client;%PATH% | |
To run the sample please do: | |
invoker.exe invoked | |
--Dmitry Ryashchentsev |