Можете ли вы использовать Java Swing в переполнении стека

Это может быть немного странным вопросом, но я хотел бы знать, можете ли вы использовать Java внутри c ++ 14. Я действительно не забочусь о GTK (я нахожу это запутанным и слишком сложным). Swing, однако, очень прост в использовании, и вы можете получить рабочий проект очень быстро. Итак, я хотел бы знать, можете ли вы использовать Java Swing внутри c ++, чтобы я мог использовать Swing в качестве переднего плана, как в том, что вы видите как графику, и использовать c ++ для фона, как и в вещах, которые вы не можете видеть, таких как вычисления и объекты и прочее. Так что, если я смогу написать код на С ++, сообщающий Swing, как он должен выглядеть и когда обновляться, это было бы очень полезно для проекта, который я имею в виду. Заранее спасибо за любой совет, который я могу получить.

РЕДАКТИРОВАТЬ: Возможность использования c ++ 14 внутри Java также была бы приемлемой. Кроме того, если бы кто-нибудь мог получить мне пример кода, это было бы очень полезно. Спасибо!

3

Решение

Вы не должны запускать Java из C ++, а скорее C ++ из Java. Oracle дает вам возможность загружать собственные разделяемые библиотеки, используя JNI.

Таким образом, вы должны создать свое представление в Java, используя Swing, затем обновите свое представление, вызвав функции C ++, которые были предварительно скомпилированы и экспортированы в общую библиотеку.

Тем не менее, использование JNI довольно сложно, и повышение скорости C ++ может не стоить того; поэтому вы должны рассмотреть возможность использования только Java (или только C ++ и библиотеки для создания вашего GUI, такого как Qt)

3

Другие решения

В каком направлении вы идете — дело вкуса (загрузка JVM из программы на C ++ или загрузка DLL со стороны JVM).

Обычно вы идете более логичным путем, например, если у вас уже есть программа на C ++, вы, вероятно, захотите загрузить JVM со стороны C ++. Это был бы твой случай. Особенно, если Java, которую вы хотите добавить, по сути является «сценарием» приложения C ++.

Если у вас уже есть Java-программа и вы хотите получить доступ к C ++ DLL, вы загружаете DLL из Java и пишете простой класс JNI / native Java.

В наше время вы будете использовать такие инструменты, как JNA для этого (вместо JNI): https://github.com/java-native-access/jna

Или вы можете использовать SWIG для генерации оболочек для ваших классов C ++: http://www.swig.org/

0

По вопросам рекламы [email protected]