Run Python in Java with jep
$ conda create -n jep2 python=3.5
$ . activate jep2
$ pip install jep
$ export LD_LIBRARY_PATH="/home/leo/apps/miniconda3/envs/jep2/lib/python3.5/site-packages/jep"
$ cat << EOF > HW.java
import jep.Jep;
public class HW {
public static void main(String[] args) {
try (Jep myjep = new Jep(false)){
myjep.eval("from java.lang import System");
myjep.eval("s = 'Hello World'");
myjep.eval("System.out.println(s)");
myjep.eval("print(s)");
myjep.eval("print(s[1:-1])");
} catch (Exception e) {
System.err.println("Caught Exception: " + e.getMessage());
}
}
}
EOF
$ javac -cp /home/leo/apps/miniconda3/envs/jep2/lib/python3.5/site-packages/jep/jep-3.7.1.jar HW.java
$ java -cp .:/home/leo/apps/miniconda3/envs/jep2/lib/python3.5/site-packages/jep/jep-3.7.1.jar HW
Run Interactive Shell
$ jep
>>> from java.lang import System
>>> System.out.println("hello")
hello
See more details with cat $(which jep)
.
Old notes in 2013.3.19
jepp产品包在Java Embedded Python, 据作者说可以将python代码嵌入到Java代码中,且效率很高。
安装
官网上下载的是源代码包,需要编译,因此Windows上就不考虑了。
Ubuntu
pip install jep
如果提示安装失败,需要设置JAVA_HOME,这样设置:
export JAVA_HOME=/usr/lib/jvm/default-java
在/usr/lib/jvm下可能会有好几个java版本目录,具体使用哪个需要根据实际情况而定。
使用
Ubuntu下运行jep提示找不到启动类jep.Run,原因不明。