2008-09-30 8 views

Odpowiedz

4

Nie, nie można. Chyba, że ​​są chętni do korzystania z niektórych „J #” biblioteki (co nie jest prawie taka sama jak Java) lub IKVM który jest implementacją Java, który działa na szczycie .NET, ale jak ich dokumentacji mówi:

IKVM. OpenJDK.ClassLibrary.dll: skompilowana wersja bibliotek klasy Java wywodzących się z biblioteki klas OpenJDK z częściami wypełnionymi kodem z GNU Classpath i IcedTea oraz dodatkowym kodem specyficznym dla IKVM.NET.

Więc to nie jest prawdziwa okazja.

+0

+1 dla IKVM używamy go do ładnej komunikacji między naszym interfejsem .NET a serwerem Java za pośrednictwem kodów pośredniczących RMI owiniętych przez zespoły IKVM. – Matt

+0

Rzeczywiście, IKVM wykonuje to zadanie ładnie, o ile komponenty nie są oparte na AWT/Swing. – jsight

1

Nic po wyjęciu z pudełka.

Większość interakcji java/.net, które znam, korzysta z usług WWW.

1

Jeśli możesz tworzyć komponenty COM z Javą, możesz użyć tlbimp do utworzenia zespołu współdz. Do użycia w VB.Net.

Jeśli można tworzyć standardowe biblioteki DLL, które mogą być używane z C++ z Javą, można pisać deklaracje P/Invoke i wywoływać je z VB.Net.

Jeśli możesz utworzyć usługę internetową za pomocą Javy, możesz wygenerować klasę proxy z pliku WSDL i wywołać ją z VB.Net.

W każdym przypadku istnieje możliwość, że komponent Java będzie żyć w oddzielnym procesie. Wątpię, aby załadować zarówno maszynę Java VM, jak i CLR w tym samym procesie.

1

Jeśli masz kod źródłowy i skompilujesz go przy użyciu kompilatora J #, to odpowiedź brzmi tak. Jeśli chcesz wywoływać biblioteki pre-Java 2 (aka 1.2), to są one prawie dosłownie zawarte w J #. Nowsze rzeczy będą jednak trudne (np. Nie ma ich tam).

Przykładem zastosowania komercyjnego są algorytmy układu wykresów yFiles z yWorks. Były one pierwotnie tylko biblioteką Java, ale od kilku lat oferują wersję .NET, która jest po prostu wersją Java skompilowaną z Visual J #.

Nie jest bez problemów i istnieją pewne ograniczenia, których nie można obejść, ale można to zrobić. Więc ... niestety ta odpowiedź wygląda na dość podejrzaną.

0

można użyć JNI instancji maszyny wirtualnej, a następnie użyć klasy Java. Będzie to jednak dobra zabawa, ponieważ będziesz musiał użyć C++ jako pomostu między VB.Net i Javą.

Ten artykuł w świecie java zawiera krótki samouczek na temat używania języka Java z C++ i viceversa.

http://www.javaworld.com/javaworld/javatips/jw-javatip17.html

0

Jeśli masz źródła, Visual Studio pozwoli Ci przekonwertować kodu Java do C#.

3

Jestem autorem jni4net, open source intraprocess bridge między JVM i CLR. Jest zbudowany na JNI i PInvoke. Nie jest wymagany kod C/C++. Mam nadzieję, że ci to pomoże.

Powiązane problemy