ffe.panels
Class FExec

java.lang.Object
  extended byffe.panels.FExec
All Implemented Interfaces:
java.lang.Runnable

public final class FExec
extends java.lang.Object
implements java.lang.Runnable

FExec is a native replacement for the JDK System.Exec() method. This class executes TINKER programs in their own thread through a call to the native function "system()". The reason we aren't using the System.Exec() methods is that some TINKER routines execute indefinitely. Users my want to exit the GUI & JVM after launching a dynamics run, for example. In this case the thread should not be dependent on a JVM instance.


Constructor Summary
FExec(FSystem s, java.lang.String n, java.lang.String a, java.lang.String d, java.lang.String p, java.lang.String c, java.lang.String l, MainPanel m, java.io.File file, boolean o)
          Constructor
 
Method Summary
 void run()
          Executes the native call to "System()" and notifies the ResultPanel upon completion.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FExec

public FExec(FSystem s,
             java.lang.String n,
             java.lang.String a,
             java.lang.String d,
             java.lang.String p,
             java.lang.String c,
             java.lang.String l,
             MainPanel m,
             java.io.File file,
             boolean o)
Constructor

Parameters:
n - Name of the log file
a - Command to execute
d - Directory to launch the command in
p - PATH
c - CLASSPATH
l - LD_LIBRARY_PATH
Method Detail

run

public void run()
Executes the native call to "System()" and notifies the ResultPanel upon completion. This should only be called indirectly by Thread.Start()

Specified by:
run in interface java.lang.Runnable