命令行使用接口:
预备知识1:类加载机制和反射机制,这是JAVA本身的基础知识,不需要再单独介绍。
题目内容:实现一个命令行控制的插件管理系统,它有一系列的控制命令可以对插件进行控制。
图片说明见附件;
详细说明:
1、所有的插件实现类都包含有“public void call(int param)”方法;
2、所有的插件都是以jar包的形式提供,jar包文件中包含有插件描述文件plugin.xml,jar包文件的结构如下:(参见随试题一起提供的附件文件plugin1.jar和plugin2.jar)
[xxx_plugin.jar]
├-[com]
│ └-[xxx]
│ ├-[MyPlugin.class]
│ └-[Other.class]
└-[META-INF]
├-[MANIFEST.MF]
└-[plugin.xml]
3、plugin.xml文件结构如下:
<?xml version="1.0" encoding="UTF-8" ?>
<plugin name="MyPlugin">
<author><person>LiTian</person><email>litian@huawei.com</email>
<site>http://www.huawei.com</site></author><item> <key>plugin</key><!--插件的具体实现类-->
<value>com.xxx.MyPlugin</value></item><item><key>version</key>
<value>1.0</value></item><item><key>date</key><value>2009-04-25</value>
</item></plugin>
4、各个插件jar包之间的类名可能会重名;
5、程序实现过程中使用到的错误提示信息可以从java2.Constants类中获取;
-----------
命令行使用接口:
程序启动方式为:java PluginLoader
“PluginLoader”参数是你将要实现的主程序类名,该类有main方法public static void main(String[] args),是程序的入口;
程序启动后处于等待命令接受状态,它可以接收的命令参见下表(红色为命令,蓝色为参数,程序处理中的各种结果需要在界面上打印信息,具体信息请引用Constants类):
命令格式 备注
add plugin:加载一个插件,plugin为jar包路径(可为绝对或相对路径),需要判断文件是否存在,文件格式是否正确,组件是否已经加载过,加载成功则打印成功信息
remove pluginName:删除一个插件,pluginName为插件的名称,需要检查插件是否存在,删除成功提示信息
call pluginName param:调用一个插件(调用插件的call方法),pluginName为插件的名称,param为调用call方法时传递的整数型参数,需要检查插件是否存在,参数类型是否正确
list:列出当前系统中已经加载的所有插件,逐行列出插件名称即可,没有插件则不打印任何信息
info pluginName:列出插件的基本信息,pluginName为插件的名称,使用Key:Value的形式输出plugin.xml中定义的所有属性,见后面的输出样例
exit:退出本程序
注意:命令名称不区分大小写,命令和参数之间使用空格分开,命令前后可包含多个空格,不符合要求的命令打印“命令格式错误”。
------------
控制台输出:命令提示符使用两个大于号“>>”,下面为一个命令行交互的过程输出: >>list >>add d:\plugin1.jar 插件加载成功 >>add d:\plugin2.jar 插件加载成功 >>add d:\plugin3.jar 文件不存在 >>list HelloPlugin HiPlugin >> info HiPlugin name:HiPlugin person:Petter email:petter@huawei.com site:http://www.huawei.com plugin:com.huawei.SayHi version:2.0 date:2009-04-24 >>call HiPlugin 33 Hi 33! >>remove HiPlugin 插件卸载成功 >>list HelloPlugin >>add d:\plugin1.jar 插件已存在 >>exit
---------
涉及到的考点:
1、XML文件解析
2、类加载和反射
参考提示1:使用JDK自带的DOM方式解析XML文件
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
DocumentBuilder dombuilder = domfac.newDocumentBuilder();;
Document doc = dombuilder.parse("要解析的XML文件");
// 获取要节点对象
Element root = doc.getDocumentElement();
// 关于Element的各种操作请参考JDK API文档
参考提示2:Jar包读取
JarFile jar = new JarFile("要解析的jar文件");
InputStream in =
jar.getInputStream(jar.getEntry("META-INF/plugin.xml")
);
分享到:
相关推荐
java技能考核试题
"Java考试机试题"通常涵盖Java的基础语法、面向对象编程、异常处理、集合框架、多线程、输入输出流、数据库连接等核心知识点。 1. **Java基础语法**:这包括变量声明、数据类型(如基本类型和引用类型)、运算符、...
java考试试题,java试题 问题,大家可以看看,祝大家考过考试!
东北大学 Java 期末试题知识点总结 东北大学 Java 期末试题涵盖了 Java 语言的多个方面,包括 Java 语言的跨平台特性、抽象类和接口的区别、面向对象的三个特性、Java 应用程序设计、数据库应用、分布式计算和聊天...
java等级考试试题
JAVA期末考试试题及答案 根据提供的文件信息,我们可以生成以下知识点: 1. JAVA 语言程序设计考试试题:单选题 * 题目 1:下列语句序列执行后,k 的值是多少?(B) int m=3, n=6, k=0; while( (m++) ( -- n) ) ...
【Java 考试试题001】 Java是一种广泛使用的高级编程语言,以其跨平台、面向对象和安全性著称。本试题集旨在测试对Java基础知识的理解,包括语法、类与对象、异常处理、集合框架、多线程以及IO流等方面的知识。 1....
【Java测试试题解析】 1. Switch语句中的表达式类型:在Java中,Switch语句的表达式可以是byte, short, char, int,枚举类型(Java 5及以上版本)以及String(Java 7及以上版本)。根据题目,表达式不能是float类型...
Java 微服务考试试题.pdf 本文档总结了 Java 微服务考试试题的知识点,涵盖了 Spring 全家桶技术、Redis、SpringBoot、Dubbo 协议、ElasticSearch、Solr、数据库事务特性、微服务技术栈等多个方面的知识点。 ...
Java机试题经典练习是针对Java编程语言的上机考试或实战训练的重要资源,这些题目旨在帮助学习者巩固和提升在Java编程方面的技能。通过解决这些练习,你可以加深对Java语法、面向对象编程、异常处理、数据结构、算法...
JAVA期末考试试题解析 本资源摘要信息将对 JAVA 期末考试试题进行详细的解析,涵盖选择题、填空题、简答题和编程题四个部分。 选择题部分: 1. 在 Java 语言开发时,需要遵循的步骤是创建项目并编写源程序、编译...
2009全国计算机等级二级java考试试题
本资料《JAVA语言程序设计》期末考试试题及答案提供了全面的学习和复习指南,帮助学生理解和掌握Java编程的核心概念。 Java期末考试通常涵盖以下几个核心知识点: 1. **Java基础知识**:包括Java的历史、特点、...
"二级sun java考试试题"这个主题指的是SCJP的二级考试,它涵盖了更深入的Java概念和技术。 SCJP,也被称为310-065或Java SE 6 Programmer II,是对初级Java程序员技能的进一步检验。这个考试包括了核心Java语言特性...
Java课程试题全套是一份全面的教育资源,旨在帮助学习者深入理解和掌握Java编程语言。这份资料集涵盖了各种类型的Java试题,适合不同层次的学习者,包括初学者到自考级别的考生。这个压缩包可能包含了多份试卷,每一...
这份"JAVA考试试题与答案"的资源涵盖了多个Java学习和认证考试的关键知识点。首先,试题可能涉及到基础语法,包括变量、数据类型、运算符、流程控制语句(如if-else、switch、for、while循环)以及方法的定义和调用...
Java理论试题.pdf 从给定的文件信息中,我们可以总结出以下知识点: 1. Java语言基础知识:break语句的作用、数组声明和访问、注释的作用、类和对象的关系、访问修饰符的作用等。 2. Java语言中异常处理的基础...
《JAVA程序设计》期末考试试题汇总及答案 本期末考试试题汇总及答案涵盖了JAVA程序设计的多个方面,包括编译Java Application源程序文件、Java基本数据类型、访问控制符、方法定义、数组操作、继承关系等。通过本...
这份试题不仅对求职者进行技术层面的考核,更是对其逻辑思维和问题解决能力的深度考验。下面我们详细解析这些题目所涉及的知识点。 首先,关于字符串处理的部分,它要求我们对给定的字符串进行一系列的操作,包括将...
【试题管理系统】是一种用于存储、组织、管理和分发各类试题的软件系统,主要应用于教育、培训及考试领域。本系统采用编程语言JAVA进行开发,JAVA以其面向对象的特性、跨平台兼容性和强大的库支持,成为了构建此类...