Umgebungsvariablen mit dem Robot "Applikation starten" einstellen
Dieses Thema stellt ein Beispiel für die Verwendung eines Ausdrucks in einem Robot-Knoten "Applikation starten" zum Starten von Programmen und zum Übergeben von Parametern an die gestartete Applikation dar.
Referenzierter Workflow
ApplicationLaunchExample.xml
Beschreibung
Mit dem Robot-Knoten "Applikation starten" können Programme gestartet und Parameter an die gestartete Applikation übergeben werden. Die unten aufgeführte Befehlszeile führt eine Java-Klasse aus und übergibt sie an drei Zeichenfolgen-Argumente. Definieren Sie für dieses Beispiel den Robot-Knoten "Applikation starten", der diese Befehlszeile enthält, als asynchron.
Anweisungen
1. Erstellen Sie drei Zeichenfolgenvariablen in der Vorlage: Name, Datum und Mitteilung. Geben Sie ihnen Anfangswerte. Um einer Variable mehr als ein Wort zuzuweisen, setzen Sie die Eingabe in Anführungszeichen ("). Wenn Sie der Variablenmitteilung beispielsweise den Satz Hallo, wie geht es Ihnen zuweisen möchten, legen Sie den Wert wie folgt fest: "Hallo, wie geht es Ihnen".
2. Erstellen Sie eine Umgebungsvariable classpath im Applikations-Robot, und stellen Sie den Wert auf den Ordner jdk auf Ihrem Rechner ein und den Ordner, in der sich die Java-Klasse befindet.
3. Erstellen Sie eine Java-Datei mit dem Code ("Code für Java-Datei"), und kompilieren Sie sie. Stellen Sie sicher, dass ihr Pfad sich in der oben genannten classpath-Variable befindet.
4. Kopieren Sie den folgenden Code:
java MessageDisplay {name} {date} {message}
Code für Java-Datei
import java.awt.*;
import java.awt.event.*
public class MessageDisplay extends Frame{
public MessageDisplay( ) {
//{{ INIT_CONTROLS
setLayout(null );
setSize(628,389);
label1 = new java.awt.Label( "Hello", Label.RIGHT );
label1.setBounds(108,36,103,22);
label1.setFont(new Font( "Dialog", Font.BOLD , 16));
add(label1);
label2 = new java.awt.Label( "Date", Label.RIGHT );
label2.setBounds(103,72,103,24);
label2.setFont(new Font( "Dialog", Font.BOLD , 16));
add(label2);
label3 = new java.awt.Label( "Message", Label.RIGHT );
label3.setBounds(103,108,103,27);
label3.setFont(new Font( "Dialog", Font.BOLD , 16));
add(label3);
TFName = new java.awt.TextField( );
TFName.setBounds(228,24,280,28);
add(TFName );
TFDate = new java.awt.TextField( );
TFDate.setBounds(228,60,276,26);
add(TFDate );
TAMessage = new java.awt.TextArea( );
TAMessage.setBounds(228,96,285,164);
add(TAMessage );
OK = new java.awt.Button( );
OK.setLabel( "OK");
OK.setBounds(312,276,70,25);
OK.setBackground(new Color(12632256));
add(OK );
LError = new java.awt.Label( "Wrong number of arguments. Please rerun with 3 arguments ");
LError.setVisible(false );
LError.setBounds(12,324,601,29);
LError.setFont(new Font( "Dialog", Font.BOLD , 16));
add(LError );
setTitle( "Untitled");
//}}
//{{ REGISTER_LISTENERS
SymWindow aSymWindow = new SymWindow( );
this.addWindowListener(aSymWindow );
SymAction lSymAction = new SymAction( );
OK.addActionListener(lSymAction );
//}}
}
public MessageDisplay(String title)
{
this( );
setTitle(title );
}
public void setVisible(boolean b)
{
if(b )
{
setLocation(50, 50);
}
super.setVisible(b );
}
static public void main(String args[ ])
{
MessageDisplay myFrame = new MessageDisplay( );
myFrame.setVisible(true );
myFrame.displayMessage(args );
}
public void addNotify( )
{
// Record the size of the window prior to calling parents addNotify .
Dimension d = getSize( );
super.addNotify( );
if ( fComponentsAdjusted )
return;
// Adjust components according to the insets
setSize(insets( ).left + insets( ).right + d.width , insets( ).top + insets( ).bottom + d.height );
Component components[ ] = getComponents( );
for (int i = 0; i < components.length i++ )
{
Point p = components[i ]. getLocation( );
p.translate(insets( ).left, insets( ).top);
components[i ]. setLocation(p );
}
fComponentsAdjusted = true;
}
// Used for addNotify check.
boolean fComponentsAdjusted = false;
//{{ DECLARE_CONTROLS
java.awt.Label label1;
java.awt.Label label2;
java.awt.Label label3;
java.awt.TextField TFName
java.awt.TextField TFDate
java.awt.TextArea TAMessage
java.awt.Button OK;
java.awt.Label LError
//}}
class SymWindow extends java.awt.event.WindowAdapter
{
public void windowClosing(java.awt.event.WindowEvent event)
{
Object object = event.getSource( );
if (object == MessageDisplay.this )
MessageDisplay_WindowClosing(event );
}
}
void MessageDisplay_WindowClosing(java.awt.event.WindowEvent event)
{
setVisible(false ); // hide the Frame
}
public void displayMessage(String args[ ]){
if ( args.length < 2){
LError.setVisible(true );
LError.setText( "Wrong number of arguments. Please rerun with 2 arguments");
}
else {
LError.setVisible(false );
TFName.setText(args[0]);
TFDate.setText(args[1]);
TAMessage.setText(args[2]);
}
}
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource( );
if (object == OK)
OK_ActionPerformed(event );
}
}
void OK_ActionPerformed(java.awt.event.ActionEvent event)
{
setVisible(false );
system.exit(0)
}
}