var data = {}; var defaultCompiler = "com.sun.tools.javac.api.JavacTool"; //we have to manually go looking for the compiler try { data.compiler = getPageContext().getClass().getClassLoader().loadClass(defaultCompiler).newInstance(); } catch(any exc) { println("Error loading compiler:"); println(exc.toString()); } /* If not by THIS point do we have a compiler, then throw an exception */ if(NOT StructKeyExists(data, "compiler")) { throwException("javaCompiler.NoCompilerAvailableException", "No Java Compiler is available", "There is no Java Compiler available. Make sure tools.jar is in your classpath and you are running Java 1.6+"); } setCompiler(data.compiler); setJarDirectory(arguments.jarDirectory); return this; //setup file manager with default exception handler, default locale, and default character set var fileManager = getCompiler().getStandardFileManager(JavaCast("null", ""), JavaCast("null", ""), JavaCast("null", "")); var qFiles = 0; var fileArray = []; var directoryToCompile = 0; var fileObjects = 0; var osw = createObject("java", "java.io.StringWriter").init(); var options = []; var compilePass = 0; var jarPath = getJarDirectory() & "/" & arguments.jarName; ArrayAppend(fileArray, qFiles.directory & "/" & qFiles.name); if(structKeyExists(arguments, "classLoader")) { options = addClassLoaderFiles(options, arguments.classLoader, arguments.directoryArray); } fileObjects = fileManager.getJavaFileObjectsFromStrings(fileArray); //does the compilation compilePass = getCompiler().getTask(osw, fileManager, JavaCast("null", ""), options, JavaCast("null", ""), fileObjects).call(); if(NOT compilePass) { throwException("javacompiler.SourceCompilationException", "There was an error compiling your source code", osw.toString()); } var urls = 0; var uri = 0; var classPaths = createObject("java", "java.lang.StringBuilder").init(); var File = createObject("java", "java.io.File"); var path = 0; classPaths.append(uri.getFile()).append(File.pathSeparator); ArrayAppend(arguments.options, "-classpath"); ArrayAppend(arguments.options, classPaths.toString()); return arguments.options; createObject("Java", "java.lang.System").out.println(arguments.str);