Java

Как в java проект вписать python

Здравствуйте, хочу узнать у опытных людей, как в java проект вписать python? Я сейчас пишу погодное приложение на java, уже сделал консольное. Осталось только сделать GUI, но GUI я хочу писать на python. Вопрос: Как это можно провернуть? Заранее спасибо
Не понял, что значит "вписать"? У них разные исполняющие среды.
Но ты можешь писать код на Jython, который компилируется в классы и исполняется JVM. Нужно просто подложить исходники в соответствующее поддерево src/main/jython/... (или как там оно стандартно называется). Тогда java-код и jython-код будут исполняться одной и той же JVM в одном процессе, и смогут вызывать друг друга.
Я, правда, с Jython не пробовал, и наверняка есть какие-то нюансы, которые придётся гуглить, но между Java, Kotlin и Scala вся интероперабельность работает железно. Единственные проблемы, с которыми я сталкивался, - это подбор совместимых версий и отказ среды компилировать юнит-тесты языка, если на этом языке нет ничего в директории main.
Сергей Казаков
Сергей Казаков
54 053
Лучший ответ
Валентин Данильченко через jython не оч удобно. есть другие способы? или jython самый предпочтительный среди всех?
Абсолютно бессмысленно. Средства создания GUI встроены непосредственно в Java. Для этого не нужны кривые костыли, написанные на Python.
Cтепан Бороздин
Cтепан Бороздин
93 424
Для интеграции Python и Java, вы можете использовать Jython, реализацию Python на Java. Через Jython вы сможете вызывать Python-код из Java.

1. Во-первых, установите Jython. После установки вы сможете запускать Python-скрипты из консоли Jython.
2. Во-вторых, в своем Java-коде вы можете создать экземпляр PythonInterpreter (класс из Jython) и вызывать Python-код.

Пример:
 import org.python.util.PythonInterpreter;  

public class MainApp{
public static void main(String[] args) throws PyException{
PythonInterpreter pyInterp = new PythonInterpreter();
pyInterp.execfile("path_to_your_python_script.py");
}
}

Тем не менее, стоит отметить, что Jython поддерживает только Python 2.7 и некоторые библиотеки могут не работать правильно.

Если очень важна поддержка Python 3 и большинства его библиотек, вы можете рассмотреть вариант использования GraalVM, который может исполнять код на Python, Java, JavaScript и многих других языках.

Также стоит учитывать, что создание GUI на одном языке, а бэкэнда на другом может создать дополнительные сложности и проблемы с производительностью. Рассмотрите возможность использования библиотеки JavaFX или Swing для создания GUI на Java, что сделает интеграцию с вашим приложением проще и более надежной.
LA
L A R G O
25 860