2024-03-26 17:40:05 | 我爱编程网
可以使用jython
方法参考如下
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("uar/local/xxx.py");
//pyFunction :py中方法名
PyFunction func = (PyFunction)interpreter.get("pyFunction",PyFunction.class);我爱编程网
Integer a = 1
Integer b = 2
// py中方法传参
PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
System.out.println("anwser = " + pyobj.toString());
对于Java应用程序(非web应用) 在部署后 常常需要一个启动脚本来加载一些第三方的jar包 并启动应用
对于java应用程序 我一般喜欢将程序的目录结构写成如下的方式
myapp
| lib
| bin
| packages
一些配置文件和属性文件
一个startup sh 或bat启动脚本
其中 packages是程序的根包 其中有子包和class文件等
在包中 有一个Main calss的类 这个作为程序的入口
下面给出一个最一般的写法
startup sh #!/bin/sh
programdir=
num=$#
temp=$CLASSPATH
#setting libs path
libs= /lib/*
append(){
temp=$temp : $
}
for file in $libs; do
append $file
done
export CLASSPATH=$temp: : /:$programdir
export LANG=zh_CN
nohup java classpath $CLASSPATH packaages xxx yyy Main &
这样 只要按照上面的方式组织程序 启动脚本就需要改动下Main前面的包路径即可
nohup 上面脚本中最后一行前有nohup 这是将程序的输入输出都将附加到当前目录的 nohup out 文件中
lishixinzhi/Article/program/Java/hx/201311/25993
我爱编程网(https://www.52biancheng.com)小编还为大家带来怎么使用java运行python脚本?的相关内容。
如果是jython,也就是运行在Jvm上的python的话,可以使用JSR223,JDK1.6已经包含了该扩展包。JSR223是一个用于解析多种脚本语言的库包,其中包括Jython。除了JSR223包之外,还需要jython-engine.jar包。
ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");
try
{
engine.eval(new FileReader("./script/listing.py"));
}
catch(ScriptException se)
{
}
catch(IOException ie)
{
}
或者参考:
_32043230.shtml
很久之前用过ScriptEngine,对在Jvm上的脚本语言比如jruby,jython,groovy等支持性都很好,有点忘记了。
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01