How to use CommandInterpreter.execute - Equinox

B

Blablablu

Gast
Hallo beisammen,

ich würde in meiner Eclipse-Equinox-Anwendung innerhalb einer Methode gerne einen Befehl ausführen, so als wenn der User diesen in die Console eingeben würde. Mein Anhaltspunkt dazu ist die Methode CommandInterpreter.execute.

Java:
private ServiceTracker commandInterpreterTracker = null;
...   
public void start(BundleContext context) throws Exception
{
      ...
      commandInterpreterTracker = new ServiceTracker(context, CommandInterpreter.class.getName(), null);
      commandInterpreterTracker.open();
...
}
...
public CommandInterpreter getCommandInterpreter()
{
      Assert.assertNotNull("CommandInterpreter tracker needs to be initialized.", commandInterpreterTracker); //$NON-NLS-1$
      CommandInterpreter cmdInterpreter = (CommandInterpreter) commandInterpreterTracker.getService();
      Assert.assertNotNull("CommandInterpreter needs to be available.", cmdInterpreter); //$NON-NLS-1$
      return cmdInterpreter;
}
cmdInterpreter ist leider immer null....vielleicht kann mir jemand weiterhelfen, wie ich einen Befehl innerhalb einer Methode so aufrufen kann, als wenn der User diesen in die Console eingegeben hätte.

Besten Dank im Voraus!
 
B

blablablu

Gast
*push*
tja...da sind wohl einige sprachlos *G*
hab mittlerweile einiges drüber gelesen, dass es mittels einer telnet verbindung möglich sein soll....das is doch aber viel zu umständlich....hat equinox für solch einen anwendungsfall wirklich nichts in der hauseigenen api vorgesehen?
 

xerberuz

Bekanntes Mitglied
Ich hab mir für so fälle immer das equinox basis bundle angesehen. Das liefert gute Anregung wie etwas zu implementieren ist. Der Command Interpreter ist eigentlich nicht dafür gedacht im Programm verwendet zu werden. Stattdessen solltest du dieselbe API nehmen wie die, die vom Commandinterpreter genutzt wird.

Wie gesagt schau dir einfach die sourcen davon an.
 

Ähnliche Java Themen


Oben