JAVA文件中调用已编译的.CLASS的类.doc

JAVA文件中调用已编译的.CLASS的类.doc

ID:62033667

大小:18.50 KB

页数:3页

时间:2021-04-15

JAVA文件中调用已编译的.CLASS的类.doc_第1页
JAVA文件中调用已编译的.CLASS的类.doc_第2页
JAVA文件中调用已编译的.CLASS的类.doc_第3页
资源描述:

《JAVA文件中调用已编译的.CLASS的类.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、java程序调用javac编译.java文件生成.class文件publicclassTest{ﻫpublicvoidcompile(Stringpath)throws IOException{ﻫ   Runtime rt=Runtime。getRuntime();    String command=”javac”;ﻫ   rt。exec(command+path);ﻫ    rt.gc();ﻫ} }初学Java时教科书告诉我们,若要运行Java程序,必需为其设置环境变量.有时候为了实现某种功能

2、(例如动态加载Class)我们需要在程序中来实现这个功能.我们经常使用的Eclipse就是很好的例子,它的所有插件的。jar文件都是放在plugin目录下的,如何加载这些包并使用其中的类成了一个棘手的问题。(关于Eclipse的类加载机制,大家可以参考《ContributingtoEclipse》p54)ﻫ下面我们就来看看,在程序中如何实现这个功能。ﻫ1、建立一个工程,并为其增加一个Interface,命名为ActionInterface.java。该接口为使用者公开了一个方法,如下:ﻫ程序代码p

3、ackage org.junesky.classPathTest;publicinterfaceActionInterface {    publicStringaction();ﻫ}ﻫ编译后,将该工程打包为.jar文件.打包方法:ﻫ在包的顶级目录(也就是例子中的org所在的目录)建立一个名为MANIFEST。MF的文件,键入:Manifest—Version:1.0保存。ﻫ在ms—doc窗口中键如命令:jarcvfmclassLoader.jarMANIFEST.MForg/ﻫ其中classLo

4、ader.jar是打包后的文件名,org/是path。2、建立一个新工程,将classLoader.jar导入,新建class文件MyAction并实现ActionInterface。如下:ﻫﻫ程序代码ﻫpackageorg.junesky.MyAction;ﻫimport org.junesky.classPathTest。 ActionInterface;ﻫpublicclass MyActionimplements ActionInterface{ﻫ   publicString actio

5、n(){       //TODOAuto-generatedmethodstubﻫ       return"——------—-—---—--—ok";ﻫ   }ﻫ}ﻫﻫ编译后打包为classTest.jar.ﻫ3、新建一工程,将classLoader.jar和classTest.jar导入,新建class文件MyClassLoader。java并继承URLClassLoader。如下:ﻫﻫ程序代码package org.junesky。classPathTest;ﻫﻫimport  java

6、.net.URL;ﻫimport   java.net.URLClassLoader;ﻫimport org.junesky.classPathTest. ActionInterface;ﻫpublic classMyClassLoader extends URLClassLoader{   publicMyClassLoader(URLurl){ﻫ       super(newURL[]{ url});    }ﻫ   publicstatic Object test(Stringstr,St

7、ringcls) {       try{ﻫ           URLurl=newURL(str);           MyClassLoader t =newMyClassLoader(url);Classc=t.findClass(cls);ﻫActionInterfaceaction=(ActionInterface)c.newInstance();returnaction.action();ﻫ       } catch(Exception ex){ﻫ           ex.pr

8、intStackTrace();       }       return"";   }ﻫ    publicstatic void main(String[]args) {ﻫ       try {ﻫ          ﻫ           System.out。println(               ClassPathTest。test("file:D:/JavaTest/ClassTest2/lib/ MyAction.jar”,                   

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。