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
