Можете ли вы использовать библиотеки Java в программе VB.net?

Мне интересно, можно ли вызвать библиотеку Java из приложения VB.net.

(Поиск в Google дает множество сомнительных ответов, но ничего окончательного)

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
0
15 233
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Нет, не можешь. Если вы не хотите использовать некоторые библиотеки "J #" (которые не похожи на Java) или ИКВМ, который является реализацией Java, работающей поверх .NET, но, как говорится в их документации:

IKVM.OpenJDK.ClassLibrary.dll: compiled version of the Java class libraries derived from the OpenJDK class library with some parts filled in with code from GNU Classpath and IcedTea, plus some additional IKVM.NET specific code.

Так что это не настоящая сделка.

+1 для IKVM, мы используем его для приятного взаимодействия между нашим .NET UI и сервером Java через заглушки RMI, обернутые сборками IKVM.

Matt 30.09.2008 18:06

Действительно, IKVM отлично справляется со своей задачей, если компоненты не основаны на AWT / Swing.

jsight 30.09.2008 19:24

Ничего из коробки.

Большинство известных мне способов взаимодействия java / .net используют веб-службы.

Если вы можете создавать компоненты COM с помощью Java, вы можете использовать tlbimp для создания сборки взаимодействия для использования в VB.Net.

Если вы можете создавать стандартные библиотеки DLL, которые можно использовать из C++ с Java, вы можете писать объявления P / Invoke и вызывать их из VB.Net.

Если вы можете создать веб-службу с помощью Java, вы можете сгенерировать прокси-класс из WSDL и вызвать его из VB.Net.

В любом случае есть вероятность, что компонент Java будет жить в отдельном процессе. Я сомневаюсь, что вы сможете загрузить и виртуальную машину Java, и среду CLR в одном процессе.

Если у вас есть исходный код и вы скомпилируете его с помощью компилятора J #, то ответ - да. Если вы хотите вызвать какие-либо библиотеки, предшествующие Java 2 (также известные как 1.2), то они в значительной степени дословно включены с помощью J #. Однако более свежие вещи будут непростыми (то есть их там нет).

Примером коммерческого использования этого являются алгоритмы компоновки графов yFiles из yWorks. Первоначально это была просто библиотека Java, но в последние несколько лет они предлагали версию .NET, которая представляет собой просто версию Java, скомпилированную с помощью Visual J #.

Это не без проблем, и есть некоторые ограничения, которые нельзя обойти, но это можно сделать. Итак ... к сожалению, этот ответ тоже выглядит довольно сомнительным.

Вы можете вызвать Java из .NET, если вы обернете его в какую-либо форму, чтобы сделать его доступным, и самый простой способ обычно - использовать мост времени выполнения, например

http://www.jnbridge.com/

Другой способ - обернуть ваш API Java-сервисами.

проверьте это также http://www.devx.com/interop/Article/19945

Вы можете использовать JNI для создания экземпляра виртуальной машины, а затем использовать классы Java. Однако это будет немного весело, потому что вам нужно будет использовать C++ в качестве моста между VB.Net и Java.

В этой статье в мире Java есть краткое руководство по использованию Java из C++ и наоборот.

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

Если у вас есть исходный код, Visual Studio позволит вам преобразовать код Java в C#.

Я являюсь автором jni4net, межпроцессного моста с открытым исходным кодом между JVM и CLR. Он построен на базе JNI и PInvoke. Код C / C++ не требуется. Надеюсь, это вам поможет.

Другие вопросы по теме