Java使用jython.jar执行python代码

wanmeilingdu 2016-01-05 11:00:45
Java使用jython.jar执行python代码报错:ImportError: No module named encodings
代码如下:
public static void main(String[] args) {
String str = "42BB0F5C";
PythonInterpreter interp = new PythonInterpreter();
interp.exec("import struct");
interp.exec("from encodings import hex_codec");
interp.exec("str_value = struct.unpack('>f', '"+str+"'.decode('hex_codec'))[0]");
PyObject str_value = interp.get("str_value");
System.out.println(str_value.toString());
}
...全文
160 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zq18239961260 2017-05-22
  • 打赏
  • 举报
回复
主要就是jython模块库里没有你import的模块,你需要先安装才行
org.python.util.PythonInterpreter Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。   JythonPython强调了代码的简明性、方便性和易读性。Jython使用缩排来对代码块定界以避免使用Java中的大括号。Jython用新的一行来表示一个新的语句的开始,并有几个重要的区别,如允许在每个语句后省略分号。Jython没有像在Java中的public、private和protected存取符,这样就给程序员提供了快速开发所需要的灵活性,并将注意力集中在程序逻辑上。正像前面所提到的,Jython不用明显的静态的类型定义,故程序员不需要从程序逻辑转移到类型定义上来.   Jython的历史要追溯到JimHugunin,他是Guidovan Rossum在国家研究动力中心(CNRI)的同事。JimHugunin认识到Python编程语言用Java实现的重要性,并实现了最初名为JPython的语言。由于要开发aspectj(http://aspectj.org/),JimHugunin不能继续致力于JPython了。所以当Python的开发者准备离开CNRI时,由当时也在CNRI的Barry Warsaw继续领导开发。   PythonJython项目组从CNRI离开后,在Sourceforge上转变为一种更开放的语言模型。在此期间,一个对Jython(JPython)做了主要贡献的人FinnBock领导了Jython项目小组。正是由于FinnBock所做的杰出贡献使Jython现在成为一个如此有价值的工具。类似Jython这样的开放源代码项目与开发和维护它们的人一样杰出,从这个意义上说Jython因为有FinnBack的贡献和指导而很幸运。另外一个对Jython做了最新有价值贡献的人是SamuelePedroni。Samuele的贡献主要在Jython的类装载、导入机制等等。Finn和Samuele目前是Jython的两个主要开发者。

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧