import java.awt.*; import java.awt.event.*; class EnvarJni extends Frame implements ActionListener { public native String getEnvar(String varname); //JNI native method declaration TextArea ta = new TextArea (5, 70); Button startbutton = new Button("Get Envar") ; Button clearbutton = new Button("CLEAR") ; TextField tf = new TextField(15) ; EnvarJni() { //constructor this.setLayout(new BorderLayout(10,10)); Panel p1 = new Panel() ; this.setBackground(new Color(192, 192, 192)) ; p1.add(new Label("Variable Name:", Label.RIGHT)) ; p1.add(tf); p1.add(startbutton); p1.add(clearbutton); startbutton.setBackground(Color.red) ; startbutton.addActionListener(this) ; clearbutton.addActionListener(this) ; add(p1, BorderLayout.NORTH) ; add(ta, BorderLayout.CENTER) ; this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); } public void actionPerformed(ActionEvent evt) { if(evt.getSource() == clearbutton) { ta.setText(""); tf.setText(""); } if( evt.getSource() == startbutton ) { if(tf.getText().trim().length() ==0) //if only white space return; String envarval = this.getEnvar(tf.getText().trim()) ; ta.append(envarval + "\n") ; } } public static void main(String args[]) { EnvarJni vj = new EnvarJni(); vj.pack(); vj.show(); } static { System.loadLibrary("envarjni"); } }