Я использую Python 3.4.Как вызвать скрипт Python с аргументами из класса Java
У меня есть сценарий Python myscript.py
:
import sys
def returnvalue(str) :
if str == "hi" :
return "yes"
else :
return "no"
print("calling python function with parameters:")
print(sys.argv[1])
str = sys.argv[1]
res = returnvalue(str)
target = open("file.txt", 'w')
target.write(res)
target.close()
Мне нужно вызвать этот питон скрипт из Java класса PythonJava.java
public class PythonJava
{
String arg1;
public void setArg1(String arg1) {
this.arg1 = arg1;
}
public void runPython()
{ //need to call myscript.py and also pass arg1 as its arguments.
//and also myscript.py path is in C:\Demo\myscript.py
}
и я звоню runPython()
из другого класса Java путем создания объекта от PythonJava
obj.setArg1("hi");
...
obj.runPython();
Я пробовал много способов, но никто из них не работает должным образом. Я использовал Jython, а также ProcessBuilder, но сценарий не записывался в файл .txt. Можете ли вы предложить способ правильно реализовать это?
Плохая идея вызывать переменную (в Python) 'str', потому что она будет маскировать класс системной строки с тем же именем. – cdarke