Я пытаюсь использовать JNI 4NET для двухсторонней связи между JAVA и C#. У меня есть следующий супер простой C# проект:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using jnijavatestapp;
namespace JNICSharpTestApp
{
public class JNICSharpTest
{
public void HelloWorldFromCSharp()
{
Console.WriteLine("Hi Java, this is C# talking!!!");
}
public void CallBackToJAVA()
{
JAVACLASS java = new JAVACLASS();
java.HelloWorldJAVA();
}
}
}
Тогда у моего java проекта есть два класса, подобных этому:
package jnijavatestapp;
import java.io.IOException;
import jnicsharptestapp.JNICSharpTest;
import net.sf.jni4net.Bridge;
public class JNIJavaTestApp
{
public static void main(String[] args) throws IOException {
InitJNI4Net();
JNICSharpTest test = new JNICSharpTest();
test.HelloWorldFromCSharp();
test.CallBackToJAVA();
}
public static void InitJNI4Net() throws IOException{
Bridge.init();
java.io.File file = new java.io.File("..\\COMMON_RESOURCES\\work\\JNICSharpTestApp.j4n.dll");
Bridge.LoadAndRegisterAssemblyFrom(file);
}
}
public class JAVACLASS
{
public void HelloWorldJAVA()
{
System.out.println("Hi C# this is JAVA Talking!!");
}
}
Я могу получить JAVA для Вызовите C#, но как только я попытаюсь вызвать test.CallBackTo JAVA (), это не удастся.
Вот как я строю:
@echo off
cd COMMON_RESOURCES
echo.
echo Running ProxyGen.exe for C#...
..\JNI4NET\bin\proxygen.exe work\JNICSharpTestApp.dll -wd work
echo.
echo Building C#...
cd work
build
@echo off
copy JNI4NET\lib\*.* COMMON_RESOURCES\work /y
copy JNIJavaTestApp\dist\JNIJavaTestApp.jar COMMON_RESOURCES\work /y
cd COMMON_RESOURCES
echo.
echo Running ProxyGen.exe for JAVA...
..\JNI4NET\bin\proxygen.exe ..\JNIJavaTestApp\dist\JNIJavaTestApp.jar -wd work
echo.
echo Building JAVA...
cd work
build
Шаги:
- Сборка. NET проекта и копирование dll в «рабочую» папку
- Создание прокси в проекте. net
- Запуск build.bat
- Создание прокси в проекте jvm 5.Run build.bat
Может не понимаю, что я делаю неправильно, чтобы получить двусторонние комы с JNI 4NET и нужна помощь!
ссылка на проект