Может ли собственный образ, сгенерированный GraalVM, заменить DLL, сгенерированные IKVM? - PullRequest
0 голосов
/ 28 октября 2019

У меня есть какое-то Java-приложение и клиент с каким-то UWP-приложением, реализованным на C #, распространяемый через Магазин Windows и т. Д., Который хочет использовать некоторые части моего приложения. Эти части не зависят от ОС, они разбирают только некоторые специальные двоичные форматы файлов, применяя некоторую бизнес-логику, настроенную с использованием файлов YAML и прочего. Нет сети, графический интерфейс, только некоторые доступы к файлам и т. Д.

В настоящее время мы используем IKVM , чтобы сделать интересующий код для C #, но столкнулся с другими проблемами. Кто-то поддерживал .NET Core , кто-то имел отношение к native toolchain в Release и т. Д. Хотя сейчас, похоже, все работаетпосле применения некоторых обходных путей я уже немного ищу альтернативы IKVM.

Единственное, что я сейчас использую в IKVM, - это просто создание DLL моего кода с использованием ikvmc , что можетзатем быть упомянутым в UWP-проекте. Суммируется компилятор следующим образом:

Инструмент ikvmc преобразует байт-код Java в .NET DLL и EXE-файлы.

Вот где поддержка для создания собственных образов Windows GraalVMпришло мне в голову. Другие, кажется, уже собирают собственные двоичные файлы для Windows и в соответствии с документами , GraalVM может создавать общие библиотеки, используя "--shared". Насколько я понимаю, IKVM реализует JVM в .NET и отображает вещи по мере необходимости и возможности. Это очень похоже на то, что делает «Substrate VM» в случае нативного образа, не так ли?

Этот исполняемый файл включает в себя приложение, библиотеки, JDK и не работает на JavaVM, но включает в себя необходимые компоненты, такие как управление памятью и планирование потоков с другой виртуальной машины, которая называется «Substrate VM». Substrate VM - это имя для компонентов среды выполнения (таких как деоптимизатор, сборщик мусора, планирование потоков и т. Д.).

https://www.graalvm.org/docs/reference-manual/native-image/

Итак, есть ли шанс, что нативныйизображение в форме DLL может заменить DLL, созданную ikvmc в настоящее время? Кто-нибудь пробовал это уже и есть опыт? Кто-нибудь уже пытался создать собственную DLL и использовать ее в каком-то другом приложении Windows? Насколько я понимаю, UWP «только» применяет дополнительные ограничения, которые можно обойти снова. Или этот подход по каким-то причинам совершенно невозможен?

Спасибо всем за ваш вклад!

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