webForumDet fria alternativet

Runtime Compiler

Java

2 svar · 200 visningar · startad av Viktor

Medlem sedan aug. 20021 752 inlägg
Frågan#1

Jag skulle vilja att användaren av mitt program ska kunna ändra i en java fil och den filen ska varje gång som programmet startar kompileras och användas av programmet.
Jag har sett att det ska finnas någont typ "sun.tool.javac" men jag har inte sett någon förklaring till hur det fungerar och kan inte hitta det på Suns sida heller.
Programmet är det gammla vanliga forumet som jag håller på med så det är från en Servlet som klassen kommer att kompileras.

/Viktor

Medlem sedan juli 2001228 inlägg
#2

Tittade i tools.jar som ligger i j2sdk1.4.0_01/lib
Där finns det en class vid namn:
com.sun.tools.javac.v8.JavacCompiler

Hittar ingen vettig doc om klasserna i tools burken tyvärr.

mvh
phonk

Medlem sedan aug. 20021 752 inlägg
#3

Jag har fått det att fungera nu, inte med v8 klassen men med "vanliga" javac. Det här är odokumenterat så Sun kan ändra på det här utan att säga till :)

public class Kalle
{
	public static void main(String argv[])
	{
		String[] s=new String[1];
		s[0]="Viktor.java";
		System.out.println("Compile!");
		new sun.tools.javac.Main(System.err,null).compile(s); // Om JDK < 1.3
		com.sun.tools.javac.Main.compile(s); // Om JDK >=1.3
	}
}

tools.jar måste finnas i classpathen för att det ska fungera.

/Viktor

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)