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