下面是我用来编译一个已经存在的java文件的方法,参考的(http://blog.csdn.net/onlyzhangqin/archive/2008/05/25/2480590.aspx) 
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
// 建立DiagnosticCollector对象 
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); 
StandardJavaFileManager fileManager = compiler 
.getStandardFileManager(diagnostics, null, null); 
// java名称 
String path1 = "hello.java"; 
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(path1)); JavaCompiler.CompilationTask task = compiler.getTask(null,fileManager, diagnostics, null, null, compilationUnits); 
// 编译源程序 
boolean success = task.call(); 我的要编译的java代码是: import java.io.PrintWriter; public class hello 
extends AbstractPackedModel { public void process(PrintWriter writer) throws Exception{ 
system.out.println("success"); 


AbstractPackedModel 类是同目录下的一个类 现在的问题是,我已经编译了AbstractPackedModel(用命令编译) ,然后用上面的方法编译hello.java,报找不到AbstractPackedModel,但是我在命令行编译hello.java却可以通过。不知道是为什么。望指点!谢谢!