0

SQLPlus への接続に使用する Solaris スクリプトがあります。このスクリプトの最後に、SQL>プロンプトが表示されます。スクリプトは次のようになります。

`#!/bin/ksh
echo Setting ORACLE_HOME ..
export ORACLE_HOME=<path>
echo Setting ORACLE_SID ..
export ORACLE_SID=<SID>
echo Setting PATH ..
export PATH=$PATH:$ORACLE_HOME/bin
echo
echo Connecting to SQLPlus ..
$ORACLE_HOME/bin/sqlplus pdmlink80/pd1016I65@P38`

今、ボタンが付いた Java Swing UI を作成しようとしています。クリックすると、このスクリプトがバックグラウンドで実行され、同じSQL>プロンプトが表示されます。スイングコードは次のようになります。

public class ButtonExample extends JFrame {

  public ButtonExample() {
    initUI();
  }

  private void initUI() {

    JPanel panel = new JPanel();
    getContentPane().add(panel);

    panel.setLayout(null);

    JButton myButton = new JButton("Button");
    myButton.setBounds(50, 60, 80, 30);

    myButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent event) {
        String s;
        Process p;

        try {
          p = Runtime.getRuntime().exec("/usr1/ptc/Windchill_9.1/Windchill/bin/windchill shell");
          p.waitFor();
          BufferedReader br = new BufferedReader(
              new InputStreamReader(p.getInputStream()));

          while ((s = br.readLine()) != null){
            System.out.println(s);
            break;
          }
          System.out.println ("exit: " + p.exitValue());
          JOptionPane.showMessageDialog(null,"Script successfully executed!!");
        } 
        catch (Exception e) {}
      }
    });

    panel.add(myButton);

    setTitle("ButtonExample");
    setSize(300, 200);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }


  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        ButtonExample ex = new ButtonExample();
        ex.setVisible(true);
      }
    });
  }

しかし、このコードを実行すると、明らかに SQL プロンプトが表示されません。プロンプトを表示するにはどうすればよいですか?

4

0 に答える 0