Как использовать Windows DLL с Java в Mac OS X? - PullRequest
4 голосов
/ 26 октября 2011

Я видел несколько проектов Java, использующих taucs.dll, TAUCS - библиотеку C разреженных линейных решателей, через JNI в Windows. Я думаю, что я могу добиться того же в Mac OS X, скомпилировав TAUCS в нечто вроде libTaucs.jnilib. У меня есть доступ к коду библиотеки, но я не знаю, как скомпилировать его в DLL, не говоря уже о библиотеке JNI. Пока что я могу скомпилировать только статическую библиотеку.

Есть ли способ конвертировать DLL в библиотеку JNI для Mac? Если мне нужно скомпилировать код, как это сделать? Будет ли перенос статической библиотеки в динамическую библиотеку работать с JNI, особенно для TAUCS, если у кого-то есть опыт?

Ответы [ 2 ]

6 голосов
/ 05 ноября 2016

Наконец Microsoft выпустила .NET Core , которая полностью независима от платформы. Когда вы создаете DLL с использованием .NET Core Framework, вы можете запустить файл с помощью следующей команды.

dotnet yourapp.dll

Кроме того, теперь .NET-приложения можно разрабатывать на компьютерах Mac или Linux с использованием облегченной IDE Код Visual Studio и Visual Studio для Mac IDE выпущена там, где Mono в MacOS X встроен.

2 голосов
/ 26 октября 2011

Многие операционные системы имеют концепцию разделяемых библиотек, но, разумеется, формат и т. Д. Таких библиотек различаются в разных операционных системах.

DLL (динамически связанные библиотеки) - это версия общих библиотек для Windows.Вы не можете просто использовать DLL с компьютера с Windows в Mac OS, точно так же, как вы не можете запустить приложение Windows в Mac OS (или любой другой операционной системе).

Вместо того, чтобы пытаться использовать Windows DLL в Mac OSвам нужно найти специфическую для Mac OS версию нативной библиотеки, которую вы пытаетесь использовать.Или, если у вас есть исходный код, скомпилируйте его в общую библиотеку Mac OS.Общие библиотеки в Mac OS X имеют расширение .so (вместо .dll), что означает «общий объект».
Загрузка их с использованием только Java невозможна.

...