Nie wiem czy dobrze zrozumiałem w czym jest problem. Poniższa odpowiedź dotyczy takiego rozumienia pytania: chcę kompilować wpisane do pola tekstowego wyrażenia, a nie chcę pisać kompilatora.
Ja sobie poradziłem tak:
- Utworzyłem interface
public interface Function
{
double compute(double x);
}
</ol>
2.Zapisuję do pliku tekstowego xxxx.java coś takiego <code>
public class xxxx implements Function
{
public double compute(double x)
{
return to_co_jest_w_polu_tekstowym;
}
}
3.Kompiluję plik xxxx.java:
String[] cmds={"javac.exe","",".",xxxx.java"};
Process p=Runtime.getRuntime().exec(cmds);
4.Tworzę obiekt klasy xxxx: <code>
Class klasa=Class.forName("xxxx");
Function fun=(Function)klasa.newInstance();
Korzystam z tego co zrobiłem:
double y=fun.compute(4.12);</li>
</ol>
Nie jestem pewien czy jest to rozwiązanie proste, ale wydało mi się prostsze niż pisanie kompilatora.
Bogdan S.