Возможно ли иметь программу Java в Eclipse для компиляции других языков, кроме Java?
В настоящее время я работаю над проектом, который должен скомпилировать файлы и дать диагностику найденных ошибок (синтаксис). Я был в состоянии заставить программу работать для файлов.java. Теперь я должен сделать то же самое для файлов, отличных от.java (пример: .py файлы), и интегрировать их с моей текущей программой. Я провел некоторые исследования и обнаружил, что eclipse может поддерживать более 20 языков, и плагины доступны для скачивания. Чего я не знаю, так это того, могу ли я вызвать "компилятор"(пример для python) и получить диагностику синтаксических ошибок, найденных в файле.py. Должен ли я искать BNF для языка?
2 ответа
Если я правильно вас понял, вам нужно скомпилировать код на языке Python "изнутри" вашей Java-программы.
Если это так, быстрым ответом может быть запуск компилятора с использованием Java-класса Runtime.
Здесь есть хороший ответ: получить результат выполнения программы командной строки
Если вам нужно запустить компилятор из eclipse, как вам уже сказали, PyDev - хороший вариант.
Кроме того, вы можете настроить любой внешний инструмент в Eclipse таким образом, это пример настройки командной строки для системы Windows:
Чтобы использовать консоль командной строки внутри затмения, просто выполните следующие действия:
- Перейти в меню Выполнить-> Внешние инструменты-> Внешние инструменты…
- Выберите "Программа" в колонке "Конфигурации" (слева)
- Нажмите кнопку New (или щелкните правой кнопкой мыши -> new)
- В поле редактирования имени введите имя для этого инструмента (это имя появится в меню "Выполнить" -> "Внешние инструменты").
- В расположении добавьте C:\WINNT\system32\cmd.exe *
- В каталоге рабочей области добавьте ${resource_loc}
- Нажмите кнопку Закрыть
Конечно, вы можете. Я использую PyDev, он делает все (выделение синтаксиса, отладка, даже некоторый рефакторинг), и вам нужно всего лишь выделить ошибки синтаксиса. При разработке в Python под Eclipse нет необходимости запускать инструменты командной строки вручную.