我正在使用Python 3.4。
我有一个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类中调用这个python脚本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
}
我正在从另一个Java类调用runPython()
,方法是创建PythonJava
的对象
obj.setArg1("hi");
...
obj.runPython();
我试过很多方法,但都不管用。我使用了Jython和ProcessBuilder,但脚本没有写入file.txt。你能建议一种适当的方法来实现这个目标吗?
你看过这些吗?他们提出了不同的做法:
Call Python code from Java by passing parameters and results
How to call a python method from a java class?
简而言之,一种解决方案可以是:
编辑:只要确保将变量名从str改为cdarke指出的其他名称
您的python代码(将str更改为其他内容,例如arg并指定文件的路径):
相关问题 更多 >
编程相关推荐