使用JavaCompiler编译java源文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用JavaCompiler编译java源文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1529字,纯文字阅读大概需要3分钟。
内容图文
从1.6版本的JDK开始,JDK提供了标准的包可以方便的调用JVM的编译器,可以方便的使用JVM的编译器来编译java源文件。JDK提供的调用接口是JavaCompiler类,该类在JDK的tools.jar包中。
1、使用JavaCompiler接口实现java文件编译
String sOutputPath = "D:\\classes"; List<String> paths = new ArrayList<String>(); paths.add("D:\\java\\Test1.java"); paths.add("D:\\java\\Test2.java"); paths.add("D:\\java\\Test3.java"); paths.add("D:\\java\\Test4.java"); paths.add("D:\\java\\Test5.java"); paths.add("D:\\java\\Test6.java"); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager fileManager = compiler.getStandardFileManager( diagnostics, null, null); Location oLocation = StandardLocation.CLASS_OUTPUT; fileManager.setLocation(oLocation, Arrays.asList(new File[] { new File(sOutputPath) })); Iterable<? extends JavaFileObject> compilationUnits = fileManager .getJavaFileObjectsFromStrings(paths); JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits); boolean result = task.call(); fileManager.close();
2、前面提到tools.jar是JDK提供的包,而当在IDE中运行实例时,由于IDE一般配置的JRE是独立的JRE,因此在获取JavaCompiler时将获取不到JVM提供的编译器(获取方法:JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();),所以会报出NullPointerException。解决方法是修改IDE的JRE路径,修改成JDK中的JRE路径,Windows->Preferences->Java->Installed JREs选择右侧表格中的JRE,然后进行编辑,将JRE的路径修改成%JAVA_HOME%/jre路径,这样再运行就不会再报出空指针异常了。
原文:http://www.cnblogs.com/demo111/p/4518137.html
内容总结
以上是互联网集市为您收集整理的使用JavaCompiler编译java源文件全部内容,希望文章能够帮你解决使用JavaCompiler编译java源文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。