java动态编译整个项目,解决jar包找不到问题

java动态编译整个项目,解决jar包找不到问题

ID:6859833

大小:76.00 KB

页数:9页

时间:2018-01-28

java动态编译整个项目,解决jar包找不到问题_第1页
java动态编译整个项目,解决jar包找不到问题_第2页
java动态编译整个项目,解决jar包找不到问题_第3页
java动态编译整个项目,解决jar包找不到问题_第4页
java动态编译整个项目,解决jar包找不到问题_第5页
资源描述:

《java动态编译整个项目,解决jar包找不到问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、java动态编译整个项目,解决jar包找不到问题原文:http://itzyx.com/index.php/javac/动态将java文件编译为class文件解决方案:将tempsdlsrc目录中的java源文件编译成class文件,并存放到tempsdlclasses目录中java中早就提供了用java方式去动态编译java源文件的接口,有关java动态编译的API都在javax.tools包中。使用jdk1.6以上版本提供的JavaCompiler工具来动态编译java源文件。我们可以通过ToolProvider类的静态方法getSystem

2、JavaCompiler得到JavaCompiler对象实例。1.//获取编译器实例    2.JavaCompilercompiler=ToolProvider.getSystemJavaCompiler();  得到JavaCompiler对象实例后,我们可以调用该工具的getTask(Writerout,JavaFileManagerfileManager,DiagnosticListenerdiagnosticListener,Iterableoptions,Iterable

3、g>classes,IterablecompilationUnits)方法获取一个编译任务对象。 3.CompilationTaskcompilationTask=compiler.getTask(null,fileManager,diagnostics,options,null,compilationUnits);  该方法的第一个参数为文件输出,这里我们可以不指定,我们采用javac命令的-d参数来指定class文件的生成目录。第二个参数为文件管理器实例 4.//获取标准文件管理器实例    5.Sta

4、ndardJavaFileManagerfileManager=compiler.getStandardFileManager(null,null,null); 该文件管理器实例的作用就是将我们需要动态编译的java源文件转换为getTask需要的编译单元。 6.//获取要编译的编译单元    7.IterablecompilationUnits=fileManager.getJavaFileObjectsFromFiles(sourceFileList); 第三个参数DiagnosticCollector

5、diagnostics是在编译出错时,存放编译错误信息。第四个参数为编译命令选项,就是javac命令的可选项,这里我们主要使用了-d和-sourcepath这两个选项。 8./**  9.*编译选项,在编译java文件时,编译程序会自动的去寻找java文件引用的其他的java源文件或者class。-sourcepath选项就是定义java源文件的查找目录,-classpath选项就是定义class文件的查找目录,-d就是编译文件的输出目录。  10.*/    11.Iterableoptions=Arra

6、ys.asList("-encoding",encoding,"-classpath",jars,"-d",targetDir,"-sourcepath",sourceDir); 12. 第五个参数为类名称第六个参数为上面提到的编译单元,就是我们需要编译的java源文件当我们得到CompilationTaskcompilationTask编译任务后,我们就可以调用compilationTask.call()方法进行编译工作 13.//运行编译任务   14.compilationTask.call()  1.package com.util;  2.  

7、1.import java.io.File;  2.import java.io.FileFilter;  3.import java.io.IOException;  4.import java.util.ArrayList;  5.import java.util.Arrays;  6.import java.util.List;  7.  8.import javax.tools.Diagnostic;  9.import javax.tools.DiagnosticCollector;  10.import javax.tools.JavaCom

8、piler;  11.import javax.tools.JavaFileOb

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

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

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