Jython与JyNI扩展在不同Linux环境下的编译与应用探索
需积分: 13 148 浏览量
更新于2024-07-24
1
收藏 66KB DOCX 举报
"这篇文档主要讨论了如何在不同的操作系统环境下,使用Jython、JyNI以及CPython进行交互,特别是涉及到在LinuxMint Debian Edition 13 (32位)、Ubuntu 13.10 (64位)以及PowerLinux (Red Hat)上配置和运行JyNI alpha版本,并解决遇到的问题。"
在集成Jython,JyNI和CPython扩展时,开发者可能遇到一些挑战。Jython是一种Python解释器,它允许Python代码在Java平台上运行。JyNI(Java to Python Interface)则提供了一个桥梁,使得Jython能够调用用C语言编写的Python扩展模块,从而扩展Jython的功能。这个过程在不同的操作系统和Java环境中可能会有所不同。
在LinuxMint Debian Edition 13 (32位)上,使用Sun JDK 1.7和Python 2.7.3,尝试编译JyNI.alpha.2时遇到了系统库不兼容的问题。官方提供的`jyni-loader.sojyni.sojyni.jar`在该环境中无法正常工作。这可能是因为系统库版本与JyNI要求的版本不匹配,或者是JyNI自身的兼容性问题。
而在Ubuntu 13.10 (64位)系统中,使用OpenJDK 1.7和Python 2.7.3,成功编译了JyNI.src并生成了`jyni-loader.sojyni.sojyni.jar`以及`DemoExtension.so`。通过Jython和JyNI,可以调用`DemoExtension`,并且得到了与CPython相同的结果。这表明在64位Ubuntu环境下,JyNI和C扩展的集成是成功的。
在PowerLinux (Red Hat)上,使用IBM Java 7和相同的Python及Jython版本,虽然能够成功编译JyNI,但在执行阶段遇到了问题。首先,IBM的Java不支持`classpath`中添加`.so`文件,这导致Jython解析器无法正常启动。其次,使用`javaembedcallJyNI`虽然可以执行,但`JyNIDateTime`模块存在异常,可能因为额外的网址信息或者其他程序错误。
在进行JyNI的编译时,确保有以下组件是必要的:
1. Python-dev 2.7:提供Python的头文件和开发库,用于编译C扩展。
2. JyNI alpha 2:这是要集成的特定版本。
3. JDK:Java开发工具包,用于编译和运行Java代码。
4. GCC:GNU Compiler Collection,用于编译C/C++代码。
在不同平台上的实验结果表明,JyNI的兼容性和稳定性可能因环境而异,尤其是在处理C扩展时。对于开发者来说,理解这些差异并适配不同的系统环境是成功集成的关键。同时,解决特定Java版本和库的兼容性问题也是部署JyNI时不可忽视的环节。
133 浏览量
839 浏览量
575 浏览量
174 浏览量
263 浏览量
183 浏览量
109 浏览量
182 浏览量
227 浏览量

java131313
- 粉丝: 17
最新资源
- 32位instantclient_11_2使用指南及配置教程
- kWSL在WSL上轻松安装KDE Neon 5.20无需额外软件
- phpwebsite 1.6.2完整项目源码及使用教程下载
- 实现UITableViewController完整截图的Swift技术
- 兼容Android 6.0+手机敏感信息获取技术解析
- 掌握apk破解必备工具:dex2jar转换技术
- 十天掌握DIV+CSS:WEB标准实践教程
- Python编程基础视频教程及配套源码分享
- img-optimize脚本:一键压缩jpg与png图像
- 基于Android的WiFi局域网即时通讯技术实现
- Android实用工具库:RecyclerView分段适配器的使用
- ColorPrefUtil:Android主题与颜色自定义工具
- 实现软件自动更新的VC源码教程
- C#环境下CS与BS模式文件路径获取与上传教程
- 学习多种技术领域的二手电子产品交易平台源码
- 深入浅出Dubbo:JAVA分布式服务框架详解