static File projectForLocalCompilation(File destZip, S programID) { temp var zipOut = zipOutputStream(destZip); Pair p = extractLibsFromTranspilation(getServerTranspiled2(programID)); text2zip(p.a, zipOut, "main.java"); new LS libPaths; new LS toCompile; for (lib : p.b) { S libPath = "lib" + lib + ".jar"; libPaths.add(libPath); file2zip(loadLibraryOrSrcLib(lib), zipOut, libPath); if (isSrcLib(lib)) text2zip(zipOut, addAndReturn(toCompile, "loadableUtils/utils.java"), getServerTranspiledWithoutLibs(lib)); // TODO } libPaths.add("x30.jar"); file2zip(pathToJavaxJar(), zipOut, "x30.jar"); text2zip("javac -source 11 -target 11 -cp " + join(":", libPaths) + " main.java " + joinWithSpace(toCompile) + "\n", zipOut, "compile"); text2zip("java -cp .:" + join(":", libPaths) + " main\n", zipOut, "run"); ret destZip; } static File projectForLocalCompilation(S programID, File destZip) { ret projectForLocalCompilation(destZip, programID); }