Конфликт имен Jython: java.lang.Runtime.exec и исполняемый файл python - PullRequest
2 голосов
/ 16 августа 2011

Я перевожу некоторый код Java в Jython, и есть момент, когда мне нужно вызвать java.lang.Runtime. Код на Java гласит:

Runtime.getRuntime().exec(cmd);

Мне нужно это перевести на Jython, но это путает "exec" со встроенной в Python функцией exec. Я искал и нашел предложения использовать что-то вроде -

from java.lang.Runtime import exec as javaExec

или

import java.lang.Runtime.exec as javaExec

но первая по-прежнему путает две версии exec, а вторая не допускает вызов getRuntime ().

Есть ли способ написать эту строку в Jython, используя либо функции Python, либо функции Java без конфликта имен?

1 Ответ

3 голосов
/ 16 августа 2011
javaexec = getattr(Runtime.getRuntime(), "exec")

Это должно работать.Еще лучше:

import subprocess
subprocess.Popen(cmd)
...