Можете ли вы использовать библиотеки Java в программе VB.net?
Мне интересно, можно ли вызвать библиотеку Java из приложения VB.net.
(Поиск в Google выдает много неясных ответов, но ничего определенного)
8 ответов
Нет, ты не можешь. Если вы не хотите использовать некоторые библиотеки "J#" (которые не являются почти такими же, как Java) или IKVM, который является реализацией Java, которая работает поверх.NET, но, как говорится в их документации:
IKVM.OpenJDK.ClassLibrary.dll: скомпилированная версия библиотек классов Java, полученных из библиотеки классов OpenJDK, с некоторыми частями, заполненными кодом из GNU Classpath и IcedTea, а также с некоторым дополнительным кодом, специфичным для IKVM.NET.
Так что это не настоящая сделка.
Я являюсь автором jni4net, внутрипроцессного моста с открытым исходным кодом между JVM и CLR. Он построен на основе JNI и PInvoke. Код C/C++ не требуется. Я надеюсь, что это поможет вам.
Вы можете вызывать Java из.NET, если оберните его в какую-либо форму, чтобы сделать его доступным, и, как правило, проще всего использовать мост времени выполнения, такой как
Другой способ - обернуть ваш API веб-сервисами Java.
проверьте это также http://www.devx.com/interop/Article/19945
Если у вас есть исходный код и вы скомпилировали его с помощью компилятора J#, тогда ответ - да. Если вы хотите вызывать какие-либо библиотеки до Java 2 (также известные как 1.2), то они в значительной степени дословно включены в J#. Более свежие вещи будут хитрыми (то есть, это не там).
Примером, где это используется в коммерческих целях, являются алгоритмы компоновки графа yFiles от yWorks. Первоначально они были просто библиотекой Java, но в течение последних нескольких лет они предлагали версию.NET, которая является просто версией Java, скомпилированной с Visual J#.
Это не без проблем, и есть некоторые ограничения, которые вы не можете обойти, но это можно сделать. Так что... к сожалению, этот ответ тоже выглядит довольно тенистым.
Ничего из коробки.
Я знаю, что большинство взаимодействий java/.net используют веб-сервисы.
Если вы можете создавать COM-компоненты с Java, вы можете использовать tlbimp для создания сборки взаимодействия для использования в VB.Net.
Если вы можете создавать стандартные библиотеки DLL, которые можно использовать из C++ с Java, вы можете написать объявления P/Invoke и вызывать их из VB.Net.
Если вы можете создать веб-сервис с Java, вы можете сгенерировать прокси-класс из WSDL и вызвать его из VB.Net.
В любом случае, скорее всего, компонент Java будет жить в отдельном процессе. Я сомневаюсь, что вы можете загрузить Java VM и CLR в одном процессе.
Вы можете использовать JNI для создания экземпляра виртуальной машины, а затем использовать классы Java. Это будет весело, потому что вам нужно использовать C++ в качестве моста между VB.Net и Java.
Эта статья в мире Java содержит краткое руководство по использованию Java из C++ и наоборот.
http://www.javaworld.com/javaworld/javatips/jw-javatip17.html
Если у вас есть исходный код, Visual Studio позволит вам конвертировать код Java в C#.