static File javaCompile(S src) { ret javaCompile(src, ""); } // returns path to classes dir static synchronized File javaCompile(S src, S dehlibs) { S javaTarget = null; // use default target //print("Compiling " + l(src) + " chars"); Class j = getJavaX(); if (javaTarget != null) setOpt(j, "javaTarget", javaTarget); //setOpt(j, "verbose", true); File srcDir = cast call(j, "TempDirMaker_make"); S className = getNameOfPublicClass(javaTok(src)); S fileName = className + ".java"; File mainJava = new File(srcDir, fileName); //print("main java: " + mainJava.getAbsolutePath()); saveTextFile(mainJava, src); File classesDir = (File) call(j, "TempDirMaker_make"); new L<File> libraries; Matcher m = Pattern.compile("\\d+").matcher(dehlibs); while (m.find()) { S libID = m.group(); //print("libID=" + quote(libID)); assertTrue(isSnippetID(libID)); libraries.add(loadLibrary(libID)); } try { // This seems to be empty in case of success with Eclipse compiler. S compilerOutput = cast call(j, "compileJava", srcDir, libraries, classesDir); if (nempty(compilerOutput)) print("Compiler said: " + quote(compilerOutput)); // sanity test if (!new File(classesDir, className + ".class").exists()) fail("No class generated (" + className + ")"); } catch (Exception e) { //e.printStackTrace(); fail("Compile Error\n" + getOpt(j, "javaCompilerOutput")); } ret classesDir; }
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1003840 |
Snippet name: | javaCompile - compile to classes dir |
Eternal ID of this version: | #1003840/1 |
Text MD5: | de5f364a8c46ecab9841fd10ce2fe1f4 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-08-07 18:21:39 |
Source code size: | 1534 bytes / 46 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 619 / 649 |
Referenced in: | #1003843 - javaCompileToJar #1005448 - javaCompile_overBot - compile to jar using compiler bot #1006654 - Standard functions list 2 (LIVE, continuation of #761) |