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: 404
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