2011-08-10 4 views
0

Я создаю приложение, в котором люди могут загружать Java-код и делать с ним что-нибудь.компиляция java изнутри python

Приложение, которое я делаю, находится на Python. Мне было интересно, можно ли было назвать команду «JAVAC» внутри питона для того, чтобы скомпилировать загруженный файл Java

Я также использую JPype

+0

Итак, где ваша проблема? Пожалуйста, опубликуйте (как редактирование вопроса), что вы делаете, и каков результат (сообщения об ошибках и т. Д.). –

ответ

4

http://docs.python.org/library/subprocess.html

Но вы уверены, что позволяет людям представить произвольный код является хорошей идеей? Есть аспекты безопасности, которые необходимо учитывать ...

+0

Программа работает на собственном компьютере. Значит, для меня нет никакого риска – tgoossens

+0

И у этого компьютера есть доступ к сети? Таким образом, кто-то может загрузить Java-программу, которая является открытым прокси, или веб-сервер, который обслуживает незаконный контент, или ... –

+0

@Erik: Я полагаю, что это своего рода апплет, который будет запускаться на компьютере клиента (= тот же самый который загрузил код). Здесь нет никакой новой опасности - если кто-то плохо может загрузить с клиента, он уже может там что-то сделать. –

0

Целиком возможно: просто использовать команду system и вызовите java-компилятор. Вам, вероятно, придется задавать пути и вещи такого рода, но они должны работать нормально.

РЕДАКТИРОВАТЬ: см. http://docs.python.org/library/os.html#os.system и http://docs.python.org/library/subprocess.html#module-subprocess для получения подробной информации о вызовах подпроцессов. Вероятно, вы захотите захватить вывод, чтобы вернуться к пользователю в случае ошибки компиляции.

+1

'subprocess.call' значительно превосходит' os.system'. – Amber

Смежные вопросы