Можете ли вы использовать библиотеки Java в программе VB.net? - PullRequest
5 голосов
/ 30 сентября 2008

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

(поиск в Google выдает много неясных ответов, но ничего определенного)

Ответы [ 8 ]

4 голосов
/ 30 сентября 2008

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

IKVM.OpenJDK.ClassLibrary.dll: скомпилированная версия библиотек классов Java, полученных из библиотеки классов OpenJDK, с некоторыми частями, заполненными кодом из GNU Classpath и IcedTea, а также некоторым дополнительным кодом, специфичным для IKVM.NET.

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

3 голосов
/ 31 октября 2009

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

2 голосов
/ 30 сентября 2008

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

http://www.jnbridge.com/

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

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

1 голос
/ 30 сентября 2008

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

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

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

1 голос
/ 30 сентября 2008

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

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

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

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

1 голос
/ 30 сентября 2008

Ничего нестандартного.

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

0 голосов
/ 30 сентября 2008

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

0 голосов
/ 30 сентября 2008

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

Эта статья в мире Java содержит краткое руководство по использованию Java из C ++ и наоборот.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...