我想创建一个java程序,从文件中读取另一个java程序,编译它并显示错误和警告。
此外,我想显示从文件中读取并编译的程序的输出。
我该怎么做?
答案 0 :(得分:3)
从程序调用Java™编程语言编译器的接口。
编译器可能在编译期间生成诊断(例如,错误消息)。如果提供了诊断侦听器,则诊断程序将提供给侦听器。如果未提供侦听器,则诊断将以未指定的格式进行格式化,并写入默认输出,即System.err,除非另有说明。即使提供了诊断侦听器,某些诊断程序也可能不适合诊断程序,并将写入默认输出。
这是我最近使用的一小段代码片段:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager =
compiler.getStandardFileManager(null, null, null);
fileManager.setLocation(StandardLocation.CLASS_OUTPUT, compileDirList);
Iterable<? extends JavaFileObject> compilationUnits =
fileManager.getJavaFileObjectsFromFiles(files);
List<String> opts = new ArrayList<String>();
// set compiler's classpath to be same as the runtime's
opts.addAll(Arrays.asList("-classpath", System.getProperty("java.class.path")));
// do the actual compilation
compiler.getTask(null, fileManager, null, opts, null, compilationUnits).call();
答案 1 :(得分:1)
这必须是一项任务。 Start here
答案 2 :(得分:0)
只需使用System.exec执行javac。然后,您可以将输出管道传输到您在编译完成时读取的文件。像这样:
System.exec(“javac * .java&gt; output.out”); READFILE( “output.out”);
希望它有所帮助。
答案 3 :(得分:0)
从文件中读取另一个Java程序,编译它并显示错误和警告的'Java程序'称为Java编译器。它已经写好了。您所要做的就是通过API或exec()调用它。