这一篇中, 介绍了安装模组的几种方法。
使用PPM来安装应该是最简单的。因为PPM 会自动帮我们找到依赖项, 并进行安装。
但是实际状况却并非想象的那么完美。
目标: 想在本地安装inline 和 inline java 模组, 这样就可以在perl 里面写Java 的代码了。
本地安装的perl 版本: ActivePerl-5.18
动作:
1. 添加所有在上一篇中介绍到的资源库。
2. inline 模组和inline java 模组都可以找到了。
3. 先点击 安装inline, 报
“ERROR: 401 Authorization Required” 的错误。 看上去是下载关联包时出现的错误。
解决思路之一: 是否是因为 perl 的版本太高了。
因为从PPM 上看inline 的版本都比较低。
重新安装perl ,版本: ActivePerl-5.10
结果还是失败。
看来只能手动安装模组了。
解决思路之二: 手动安装inline模组
下载 inline 模组包, 手动安装。
可以看出 inline 依赖于
Inline depends on Test-Warn
Inline depends on Parse-RecDescent
Inline depends on Carp
Inline depends on Tree-DAG_Node
但是在安装以下两个的时候, 还是会出错
Inline depends on Test-Warn
Inline depends on Parse-RecDescent
解决思路之二(继续): 手动安装inline 的依赖模组Test-Warn 和 Parse-RecDescent 。
安装过程会报ExtUtils-MakeMaker 的版本低了的错误。ExtUtils::MakeMaker version 6.62 required--this is only version 6.55_02 at
下载一个MakeMaker 的高版本进行安装。
终于可以了:
use Inline Java => <<'END_OF_JAVA_CODE' ; class Pod_alu { public Pod_alu(){ } public int add(int i, int j){ return i + j ; } public int subtract(int i, int j){ return i - j ; } } END_OF_JAVA_CODE my $alu = new Pod_alu() ; print($alu->add(9, 16) . "\n") ; # prints 25 print($alu->subtract(9, 16) . "\n") ; # prints -7
1. PPM 里面添加的资源库网站 里面是提供了一些已经编译好了模块。所以手动安装的话, 需要执行 make(nmake )命令先编译。
1. padwalker
如果要在eclipse (EPIC)中debug perl 的代码的话, 需要安装这个模块。
资源库: http://www.bribes.org/perl/ppm
和Java 相关的模块。
模块名称 |
描述 |
JAVA |
这个模块提供一个框架,用于开启本地JAVA虚拟机(JVM)或者连接到远程JAVA 虚拟机。它包括对虚拟机本地化、对象创建、方法引用、事件循环监测和异常的支持。 |
Inline::JAVA |
这个模块是JAVA开发人员转到perl的最有用的模块之一。因为它允许JAVA开发人员将JAVA代码嵌入到perl 脚本,然后这一代码在需要时通过perl解释器自动编译和引用。这个模块包括对环境变量、类型、共享虚拟机、数组、对象和异常的支持。 当你需要将JAVA代码直接嵌入到perl脚本时,使用该模块。 |
JAVA::Import |
这个模块使得可以从perl中很容易的引用和访问JAVA类。它包括调用静态方法,传递参数和处理返回值,同基于JAVA的数据结构一起工作,处理异常等功能。 当你需要从perl脚本访问JAVA类时需要这个模块。 |
JAVA::Build |
这一模块提供了对于传统JAVA构建工具Ant的替代,它包含了perl脚本编辑工具和标准JAVA构建/打包工具集。 当你要求对JAVA类的构建/打包过程进行更有力的控制时,需要使用该模块。 |
JAVA::Swing |
这个Swing工具集提供JAVA应用中的复杂GUI控制(工具条、按钮、单选框)。这个模块对于Swing API调用提供了一个基于对象的接口,它包括对于扩展组件,监听器和其它包装器的支持。 当你需要通过perl访问JAVA Swing功能时,使用该模块。 |
JDBC |
这一模块利用JDBC提供了一个对各种数据库系统的接口,它包括对数据库连接、执行查询和结果返回、准备语句和错误处理等提供支持。 当你需要通过JDBC“管道”(可能使用一个定制的JDBC驱动类)连接到关系型数据库管理系统时,需要使用该模块。 |
JAVA::SJ |
这个模块提供一个框架用于定制JAVA虚拟机配置,使得可以同时运行多个虚拟机,每个有一个不同的开始配置和服务任务。配置信息使用XML表达。 当你需要在同一台机器上同时运行多个JAVA虚拟机时,需要使用该模块。 |
JAVA::JVM::Classfile |
这个模块用来读取和解析JVM的字节码文件,以及在字节码文件中作为一系列对象来表达信息。提供大量查看特定信息(例如类方法,属性和可见性等)的方法。 使用该模块恢复在JVM字节码文件中定义的关于对象和类的详细信息。 |
Template::Plugin::JAVA |
这一模块提供一个框架,用于在XML中描述JAVA类,然后将这些XML描述转变为JAVA源代码。这些XML描述可能包括对变量和方法的描述,还包括对类型和数组的支持。支持两种操作模式:命令行和嵌入到一个模板中。 当你需要以一种标准,容易解析的格式创建类模板时,可以使用该模块,还可以用于其他平台。 |
JAVA::JCR::Jackrabbit |
这一模块使得很容易的通过perl连接和操纵jackrabbit内容库(JCR),它包括对自定义节点的支持。当你需要访问jackrabbit内容库时,可以使用该模块。 |