how to redirect terminal contents to a jtextpane?

Posted by sonu thomas on Stack Overflow See other posts from Stack Overflow or by sonu thomas
Published on 2010-05-26T06:54:22Z Indexed on 2010/05/26 8:01 UTC
Read the original article Hit count: 376

Filed under:
|

hi.. I was trying to run a java class file using java code.The aim was to direct the executing sequence of the terminal of fedora 10 into a frame with a textpane.

My code is:

import java.io.DataInputStream;
import java.io.IOException;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextPane;

//import sun.reflect.ReflectionFactory.GetReflectionFactoryAction;


public class file {

 /**
  * @param args
  */
 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException{
  // TODO Auto-generated method stub

  JDialog jj = new JDialog();
 jj.setTitle("helllo");


  String sssub1,sssub2,sssub3;
                String ss="C:/Users/sonu/Desktop/ourIDE/src/src/nn.java";
 JPanel  n = new JPanel();
 jj.setContentPane(n);
  JTextPane tpn2=new JTextPane();
  jj.getContentPane().add(tpn2);
  jj.setVisible(true);

  Runtime runtime;
 Process process; 
 if(ss.indexOf(" ")==-1)
  {
   try
   {
   runtime= Runtime.getRuntime();
   sssub1="/home/ss/Desktop/src/";
   sssub2="nn"; 
   process=runtime.exec("sh jrun.sh "+sssub1+" "+sssub2);

   DataInputStream data=new DataInputStream(process.getInputStream());
      DataInputStream data_data=new DataInputStream(process.getErrorStream());
   String s="",t="";
   int ch;
   while((ch=data.read())!=-1){
    s=s+(char)ch;
   }

   data.close();
   while((ch=data_data.read())!=-1){
    t=t+(char)ch;
   }
   data_data.close();
   if(t.equals(""))
   {
    s+="\nNormal Termination.";
    tpn2.setText(s);
   }
   else
    tpn2.setText(t);

   }catch(Exception e){
    System.out.println("Error executing file==>"+e);}
  }

 }                               
 }


The content of **jrun.sh** is

cd $1
java $2

When the content of **nn.java** was this:


import java.io.*;
class nn
{
 public static void main(String[] ar)throws IOException
 {
        int i=90;
        BufferedReader dt = new BufferedReader(new InputStreamReader(System.in));
 System.out.println("Enter");
        //i=Integer.parseInt(dt.readLine());      line--notable
 System.out.println("i="+i);
 }
}

It worked smoothly

But when I remove the comment on line--notable,it gave me Textpane with no content.

The problem is : I cant read an input from nn.java

Kindly give me a solution...

If i am able to: get the terminal pop up with executing the nn.class,and i am able to enter the input,then it will do...

Thanks in advance...

© Stack Overflow or respective owner

Related posts about java

Related posts about linux