Перейти к содержимому

Как запустить код на java

  • автор:

Вызов Python скрипта из Java кода

Иногда, чтобы выполнить требования проекта, нам необходимо вызывать Python скрипты из нашего Java кода. Это можно сделать с помощью классов Process, ProcessBuilder и Jython. Давайте рассмотрим, как мы можем использовать каждый из них.

832 показа
525 открытий
Использование класса Process для запуска Python скрипта из Java кода

Мы можем использовать класс Process в Java для запуска Python скриптов из нашего Java кода. Давайте попробуем создать Python скрипт и запустить его с помощью Java кода.

Следуйте шагам ниже:

  • Скопируйте ваш Python скрипт в строку в Java.
  • Создайте файл с расширением .py, используя BufferedWriter.
  • Запишите содержимое из строки в файл Python и закройте записывающий поток.
  • Создайте процесс для запуска файла Python с помощью Runtime.getRuntime().exec().
  • Прочитайте данные из процесса с помощью BufferedReader.
  • Используйте или выведите данные, полученные из выполнения кода Python.

Теперь давайте реализуем указанные выше шаги в Java коде:

Код выше пытается создать и запустить Python скрипт в Java и записать следующую строку в файл DemoPythonFile.py.

Привет, это DTF.RU!

Следует отметить, что нет необходимости создавать скрипт Python, а затем его запускать; вы также можете напрямую загрузить свой Python скрипт и его вывод в Java код.

Обратите внимание, что вы можете получить предупреждение о устаревшей функции Runtime.getRuntime().exec(), что означает, что Java может удалить эту функцию в будущих версиях.

Использование класса ProcessBuilder для запуска Python скрипта из Java кода

Класс ProcessBuilder в Java используется для создания процесса операционной системы. Мы также можем использовать этот класс для запуска Python скриптов в Java.

Следуйте шагам ниже, чтобы запустить Python скрипты в Java с помощью класса ProcessBuilder:

  • Убедитесь, что Python установлен на вашей системе.
  • Создайте Python скрипт с расширением .py или выберите один, если у вас уже есть.
  • Создайте экземпляр класса ProcessBuilder и передайте python и путь к скрипту в качестве параметров.
  • Создайте процесс для запуска ProcessBuilder с помощью метода start(); это выполнит Python скрипт.
  • Создайте BufferedReaderдля получения вывода Python скрипта из процесса.
  • Выведите результат.

Давайте реализуем пример на Java. Наш Python скрипт:

print(«Привет, это DTF.RU!»)

И вот реализация на Java:

Приведенный выше код выполнит указанный Python-скрипт с использованием Java и выведет его в консоль. Вывод:

Привет, это DTF.RU!
Используйте Jython для одновременного выполнения Python и Java кода

Jython — это проект для реализации скриптов Python в коде Java. Jython запускает Python и Java код одновременно.

Чтобы использовать Jython в Java, нам просто нужно скачать Jython-standalone-2.7.2.jar или любую последнюю версию и добавить его в путь сборки вашего проекта. Следуйте шагам ниже, чтобы добавить Jython в вашу Java среду:

  • Скачайте Jython Standaloneздесь.
  • Добавьте Jython-standalone-2.7.2.jar в ваш путь сборки.
  • Перейдите в свойства проекта Properties ->Java Build Path.
  • Добавьте внешний Jar в ваш classpath.
  • Выберите Jython-standalone-2.7.2.jar и нажмите Применить и Закрыть.

После того как Jython включен в нашу среду Java, мы теперь можем запускать Python-скрипты в Java. Класс PythonInterpreter принадлежит Jython и используется для выполнения Python-скриптов и операций.

Вот различные методы от Jython для выполнения Python в Java:

  • setIn(PyObject) — Используется для установки объекта Python в качестве стандартного входного потока.
  • setIn(java.io.Reader) — Используется для установки Java IO Reader в качестве стандартного входного потока.
  • setIn(java.io.InputStream) — Используется для установки Java IO InputStream в качестве стандартного входного потока.
  • setOut(PyObject) — Используется для установки объекта Python в качестве стандартного выходного потока.
  • setOut(java.io.Writer) — Используется для установки Java IO Writer в качестве стандартного выходного потока.
  • setOut(java.io.OutputStream) — Используется для установки Java IO OutputStream в качестве стандартного выходного потока.
  • setErr(java.io.Writer) — Используется для установки Java IO Writer в качестве потока стандартных ошибок.
  • setErr(PyObject) — Используется для установки объекта Python в качестве потока стандартных ошибок.
  • setErr(java.io.OutputStream) — Используется для установки Java IO OutputStream в качестве потока стандартных ошибок.
  • eval(String) — Используется для вычисления строки Python для Java.
  • eval(PyObject) — Используется для вычисления объекта Python для Java.
  • exec(String) — Используется для выполнения строки Python в локальном пространстве имен.
  • exec(PyObject) — Используется для выполнения объекта Python в локальном пространстве имен.
  • execfile(String filename) — Используется для выполнения файла Python в локальном пространстве имен.
  • execfile(java.io.InputStream) — Используется для выполнения Python InputStream в локальном пространстве имен.
  • compile(String) — Используется для компиляции строки Python в модуль выражения.
  • compile(script, filename) — Используется для компиляции скрипта Python в модуль выражения.
  • set(String name, Object value) — Используется для установки переменной типа объект.
  • set(String name, PyObject value) — Используется для установки переменной типа PyObject.
  • get(String) — Используется для получения значения переменной.
  • get(String name, Classjavaclass) — Используется для получения значения переменной и возврата его в виде экземпляра заданного класса Java.

Теперь, когда мы знаем о методах из проектов Jython, давайте попробуем использовать некоторые из них в нашем примере: Файл script.py:

print(«Привет, это DTF.RU!, Сообщение от Python»)
import org.python.util.PythonInterpreter; import org.python.core.*; public class Example < public static void main(String []args) throws PyException < PythonInterpreter Python_Interpreter = new PythonInterpreter(); System.out.println( "Привет, это DTF.RU!, Сообщение от Java" ); // Запустите Python файл Python_Interpreter.execfile("C:\\Users\\Mironov\\script.py"); // Выполнить различные операции Python // Установить переменную и распечатать ее с использованием Python в java Python_Interpreter.set("x", new PyInteger(100)); Python_Interpreter.exec("print x"); // Выполнить сумму Python_Interpreter.exec("y = 25+45"); PyObject y = Python_Interpreter.get("y"); System.out.println("y: "+y); >>

Приведенный выше код выполнит Python-скрипт из файла и выполнит некоторые Python-операции с использованием методов из таблицы выше. Вывод:

В Visual Studio Code добавлен отладчик Java

Java Debugger добавлен в VS Code. Разработчики получили основные функции отладки Java-проектов прямо в редакторе кода.

Об этом было объявлено в блоге разработчиков. Напомним, что Visual Studio Code уже поддерживал расширение Language Support for Java™ от Red Hat, которое предоставляло доступ к функциям IntelliSense.

Для разработчиков, желающих познакомиться с редактором Visual Studio Code, был выпущен пакет Java Extension, включающий в себя Language Support for Java™ и новый отладчик Java Debugger. Группа разработчиков VS Code обещает, что это только начало, и со временем редактор получит новые расширения для работы c Java.

Поддерживаемые функции

  • Launch/Attach — возможность либо запустить Java-проект в VS Code, либо подключиться к запущенному процессу Java Virtual Machine (JVM) в режиме отладки локально или удалённо;
  • Breakpoints — поддерживаются условные точки останова, что позволяет легко добавлять их в режиме просмотра кода без открытия дополнительных окон. Также поддерживаются остановки исключений;
  • Control Flow — поддерживаются Pause, Continue ( F5 ), Step Over ( F10 ), Step Into ( F11 ) и Step Out ( Shift+F11 );
  • Data inspection — во время остановки в точке останова отладчик имеет доступ к именам переменных и их значениям, хранимым в памяти на момент остановки. Поддерживаются функции переменных Inspect, Watch, Set;
  • Diagnostics — панель CALL STACK показывает стек вызовов программы и позволяет перемещаться по пути каждого из них;
  • Debug Console — позволяет видеть информацию из stdout и stderr .

Установка расширения

Для начала работы с новым расширением:

  1. В VS Code откройте раздел Extensions ( Ctrl+Shift+X );
  2. Наберите «java» в окне фильтров;
  3. Найдите и установите Java Extension Pack или же Java Debugger for Visual Studio в случае, если в редакторе кода уже был установлен Language Support for Java™ от Red Hat.

После перезагрузки VS Code откройте папку с Java-проектом и следуйте шагам:

  1. Подготовьте проект: откройте .java файл, Java-расширение автоматически активируется. Поддериживаются проекты Maven, Gradle и Eclipse;
  2. Начните отладку: переключитесь в режим отладки ( Ctrl+Shift+D ) и откройте файл launch.json , чтобы добавить конфигурацию отладки Java;
  3. Заполните конфигурацию в mainClass для запуска проекта в VS Code или же добавьте hostName и port для подключения к JVM;
  4. Установите точку останова и нажмите F5 для запуска отладчика.

Напомним, что в последнем релизе Visual Studio Code 1.16 введена полная поддержка TypeScript и упрощена работа с HTML-разметкой веб-страниц.

Разработка приложений Java Service Fabric с помощью Visual Studio Code

Расширение Service Fabric Reliable Services для VS Code позволяет легко создавать приложения Java Service Fabric в операционных системах Windows, Linux и macOS.

В этой статье показано, как создавать, развертывать и отлаживать приложение Java Service Fabric с помощью Visual Studio Code.

Приложения Java Service Fabric могут разрабатываться на компьютерах Windows, но развернуть их можно только в кластерах Linux в Azure. Отладка приложений Java в ОС Windows не поддерживается.

Предварительные требования

В этой статье предполагается, что уже установлено VS Code, расширение Service Fabric Reliable Services для VS Code и все зависимости, необходимые для среды разработки. Дополнительные сведения см в разделе Руководство.

Скачивание примера приложения

Чтобы клонировать репозиторий на компьютер разработки, в окне терминала (командное окно в Windows) необходимо выполнить следующую команду.

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.git 

Открытие приложения в VS Code

Откройте VS Code. Щелкните значок Обозревателя на панели действий и нажмите кнопку Открыть папку, или щелкните файл -> Открыть папку. Перейдите к каталогу в папке ./service-fabric-java-quickstart/Voting, где вы клонировали репозиторий, затем нажмите кнопку ОК. Рабочая область должна содержать те же файлы, что показаны на следующем снимке экрана.

Приложение для голосования Java в рабочей области

Построение приложения

Команда сборки приложения в VS Code

  1. Нажмите клавиши CTRL+SHIFT+P, чтобы открыть палитру команд в VS Code.
  2. Найдите и выберите команду Service Fabric: Build Application (Создание приложения Service Fabric). Выходные данные сборки передаются во встроенный терминал.

Развертывание приложения в локальном кластере

Созданное приложение можно развернуть в локальном кластере.

Развертывание приложений Java не поддерживается на компьютерах под управлением Windows.

  1. В Палитре команд выберите Service Fabric: развертывания приложения (Localhost). Выходные данные процесса установки отправляются в интегрированный терминал. Команда развертывания приложения в VS Code
  2. Когда развертывание будет завершено, запустите браузер и откройте Service Fabric Explorer: http://localhost:19080/Explorer . Будет видно, что приложение запущено. Это может занять некоторое время. Приложение для голосования в Service Fabric Explorer
  3. Когда вы проверите, что приложение запущено, запустите браузер и откройте эту страницу: http://localhost:8080 . Это веб-интерфейс приложения. Можно добавить элементы и щелкнуть их, чтобы проголосовать. Приложение для голосования в браузере
  4. Чтобы удалить приложение из кластера, выберите команду Service Fabric: Remove Application (Service Fabric: удалить приложение) на палитре команд. Выходные данные процесса удаления отправляются в интегрированный терминал. Чтобы убедиться, что приложение было удалено из локального кластера можно использовать Service Fabric Explorer.

Отладка приложения

При отладке приложения в VS Code оно должно выполняться в локальном кластере. Затем в код можно добавить контрольные точки.

Отладка приложений Java не поддерживается на компьютерах под управлением Windows.

Чтобы подготовить VotingDataService и приложение для голосования для отладки, выполните следующие действия.

    Обновите файл Voting/VotingApplication/VotingDataServicePkg/Code/entryPoint.sh. Закомментируйте команду в строке 6 (используя «#») и добавьте в конец файла следующую команду.

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingDataService.jar 
  • Чтобы открыть представление отладчика в VS Code, щелкните значок отладки в Панели действий. Щелкните значок шестеренки в верхней части представления отладчика и выберите Java в меню раскрывающееся среды. Откроется файл launch.json. Значок отладки в рабочей области VS Code
  • В launch.json-файле задайте значение порту в конфигурации с именем Отладка (Вложение) для 8001. Сохраните файл. Конфигурация отладки для launch.json-файла
  • Развертывание приложения в локальном кластере с помощью команды Service Fabric: развертывание приложения (Localhost). Убедитесь, что приложение выполняется в Service Fabric Explorer. Теперь приложение готово к отладке.
  • Чтобы задать точку останова, выполните следующее.

    Задайте точку останова в службе данных для голосования

      В проводнике откройте файла /Voting/VotingDataService/src/statefulservice/VotingDataService.java. Задайте точку останова на первой строке кода в try блоке addItem метода (строка 80).

    Важно! Убедитесь, что вы установили точки останова на исполняемые строки кода. Например точки останова, заданные в объявлениях метода, try инструкциях или catch инструкциях отброшенных отладчиком.

  • Чтобы начать отладку, щелкните значок отладки на панели действий,выберите настройку Отладка (Вложение) из меню «Отладка» и нажмите кнопку выполнения (зеленая стрелка). Конфигурация
  • В веб-браузере перейдите по адресу http://localhost:8080 . Введите новый элемент в текстовом поле и нажмите кнопку + добавить. Ваша точка останова должна быть выполненной. Вы можете использовать панель инструментов «Отладка» в верхней части VS Code для продолжения выполнения, перехода по строкам, перехода к методам или выхода из текущего метода. Выполнение точки останова
  • Чтобы завершить сеанс отладки, щелкните значок подключения на панели инструментов отладки в верхней части VS Code. Отключение отладчика
  • Закончив отладку, вы можете использовать команду Service Fabric: Remove Application (​​Service Fabric: удалить приложение) для удаления приложения для голосования из локального кластера.
  • Дальнейшие действия

    • Дополнительные сведения см. в разделе Разработка и отладка приложений Service Fabric на C# с помощью VS Code.

    Как запустить код на java

    n0sk1ll → Codeforces Round #910 (Div. 2)

    Medeali → Finally Pupil

    n0sk1ll → Editorial for Codeforces Round #910 (Div. 2)

    Little_Sheep_Yawn → Help Needed for this Pypy Issue!

    IanDeHaan → Invitation to the Alberta Collegiate Programming Contest 2023 (Open Division)

    killmeray → VK — огромная проблема олимпиад

    glebustim → CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)

    k o_osaga → T1 is the 2023 World Champion

    ICPCNews → ICPC 2023 Online Challenge powered by Huawei

    jacoby149 → wow, i did pretty bad on round 910

    Некропост

    pritishn → Share your big brain moments from back when you were low rated.

    av.dk → Div3 round 909

    atcoder_official → Sky Inc, Programming Contest 2023 (AtCoder Beginner Contest 329) Announcement

    T LE → Finally, semantic search for competitive programming problems

    pingvvin → I need IZHO 2011 Editorial

    Некропост

    MikeMirzayanov → Изменение правил об использовании стороннего кода в соревнованиях Codeforces

    m aroonrk → ALGO ARTIS Programming Contest 2023 Autumn(AtCoder Regular Contest 168) Announcement

    zwezdinv → Codeforces Round #909 (Div. 3)

    Rahat_Khan_Pathan → Solve UVa 11235 — Frequent values using Segment Tree

    Mahmyt → IZHO age limit

    AcidWrongGod → Открытая Командная Олимпиада КФУ 2023

    libnguyen2 → [Discussion]: Solutions for IOI 2023 tasks + My solution to IOI23 Day1 P1 — Closing Time

    sg0310461 → Why this solution is giving TLE?

    Imakf → Codeforces Round 906 (Div. 1, Div. 2)

    jli505 → IOI Gold Medalist Speaker Event

    Блог пользователя ShyngyS

    JAVA на Far manager

    Автор ShyngyS, история, 8 лет назад ,

    Привет всем! У меня тут один вопрос (наверника поняли какой :D). Пишу на C++, и хотел научиться и Джаву. Вот вапрос таков — можно ли писать на Far manager JAVA код ? Если можно, то что писать на «Fail associations» чтобы можно было компилировать речез — Enter ! За ранее спамибо !

    Комментарии (4)

    Показать архивные | Написать комментарий?
    8 лет назад , # |

    Можно. Скачать и поставить надо Java Development Kit (JDK), лучше 32-битную версию, которая x86 (независимо от битности системы), качается по первой ссылки в гугле с сайта Oracle. Потом добавить в PATH путь вроде C:\Program Files (x86)\Java\jdk1.8.0_99\bin\ . Потом в File Associations команда компиляции — javac . для файлов с расширением .java , и команда запуска — java ! для файлов с расширением .class .

    Соответственно, при компиляции a.java командой javac a.java образуется как минимум файл a.class (возможно, еще несколько), его надо запускать командой java a (из той же папки). В exe скомпилировать так просто нельзя.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *