2010-04-07 11 views
6

Gibt es eine Möglichkeit mit JNI und C# -Code ein Programm zu erstellen, die Java-Methode aufrufen? Angenommen, ich habe ein Jar mit Klassenhierarchie und ich bin verantwortlich für das Laden der JVM und dieser Klassen, kann ich ein C# -Programm schreiben, das die Java-Methode Signatur + Argumente Werte im laufenden Betrieb erhält und den Java-Code aufrufen?Rufen Sie eine beliebige Java-Methode aus C#

Bitte versuchen Sie, Ihre Antworten auf kostenlose Technologien zu beschränken (JNI-Lösungen bevorzugt).

Antwort

3

IKVM ist eine Option. Es implementiert eine JVM in .NET und bietet Interop-Tools.

+1

Wie kann IKVM hier helfen, sollte die Auflösung in Laufzeit und nicht durch das Erstellen statischer Artefakte (.NET-Proxies) gemacht werden? – Guy

+0

@Guy - IKVM kann sowohl im dynamischen als auch im statischen Modus verwendet werden; siehe http://sourceforge.net/apps/mediawiki/ikvm/index.php?title=User%27s_Guide Im dynamischen Modus werden Java-Bytecodes durch den Klassenlader direkt in CIL übersetzt. –

+0

Allgemeiner gesagt, möchte ich von der Lösung, die .NET-Proxy erstellt, abrücken. – Guy

3

IMHO der beste Weg wäre, das Java-Programm als WebService (oder erstellen Sie eine Java-basierte WebService-Schnittstelle dafür) und rufen Sie es einfach von C#.

+0

Ich habe nicht erwähnt, dass ich keine Ahnung vom Java-Code habe und auch keine Möglichkeit, ihn zu ändern. Die einzige Eingabe, die ich habe, ist: JAR, Methodenname, Argumente und Werte – Guy

+0

dbenerlin: Was sind komplexe Datentypen unterstützt in Java, die in .Net unterstützt werden? Danke – Ocean

Verwandte Themen