Solved

How to run unix command from JSP

Posted on 2006-07-13
7
1,797 Views
Last Modified: 2008-02-01
Hello Experts,

Can anybody please guide me on how to run a unix commands from jsp application ported on the unix box?
My requirement is to navigate to a particular Unix directory and run the command like: text2ps  -l  -m  t.1.25, b.5,.5  -r 60  -c 165  -s0.85  | distill > av_report.pdf (this command creates PDF from ASCII/text files)

If you could give a sample code, it will be a great help.
Thanks.
0
Comment
Question by:AmolDesai23
  • 3
  • 3
7 Comments
 
LVL 9

Expert Comment

by:owenli27
ID: 17102146
How about run shell from JSP script?  not sure it is best answer...

<%@ page language="java"  import="java.io.*, java.lang.*"%>

<%
  Runtime rt = Runtime.getRuntime();
  Process prcs = rt.exec(“/bin/bash”); //or your csh shell location

  BufferedWriter cmd = new BufferedWriter(new OutputStreamWriter(prcs.getOutputStream()));
  cmd.write(“text2ps  -l  -m  t.1.25, b.5,.5  -r 60  -c 165  -s0.85  | distill > av_report.pdf”);
  cmd.flush();

  int returnCode = prcs.exitValue();
  prcs.destroy();

%>
0
 

Author Comment

by:AmolDesai23
ID: 17102259
Thank you Owenli.

Do I need to have my JSPs on a same Unix machine to run and try this code? What if I have to run this Unix command on a different Unix machine?
0
 
LVL 9

Expert Comment

by:owenli27
ID: 17102896
Yes, it should be on same machine. It is a separate process and not a thread within JVM.
You can call prcs.waitFor() to wait for the process to finish.

For  run this Unix command on a different Unix machine, I am not sure but I guess that you may need telnet API, try this package: de.mud.telnet OR org.apache.commons.net.telnet



0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:AmolDesai23
ID: 17103049
Thanks again! does anybody have a code to execute above unix comand on a different Unix machine (via a telnet may be... as per Owenli)?

regards.
0
 
LVL 8

Expert Comment

by:kaliyugkaarjun
ID: 17105960
0
 

Author Comment

by:AmolDesai23
ID: 17107604
Thank you friend. I don't know much abt Unix and couldn't understand the code out there in that link.  Can i write something like this in my scriptlet? Will it work? if not...whats the solution?

    <%
    try
          {
          Runtime runTime = Runtime.getRuntime();
          Process process = runTime.exec ("text2ps  -l  -m  t.1.25, b.5,.5  -r 60  -c 165  -s0.85  | distill > av_report.pdf \r\n");
          InputStream inputStream = process.getInputStream();
          InputStreamReader   inputStreamReader = new InputStreamReader (inputStream);
          BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
          String line = null;
        while ( (line = bufferedReader.readLine()) != null )
    %>
    -- <%= line %>  <!-- this line is just for a debugging purpose-->
    <%    
        System.out.println(line);
          int exitVal = process.waitFor();
          System.out.println ("Process exitValue:  " + exitVal );
          }
          catch (Throwable t)
          {
               t.printStackTrace();
          }
    %>
0
 
LVL 9

Accepted Solution

by:
owenli27 earned 500 total points
ID: 17108133
AmolDesai,

The code will work fine.  You may need use whereis/which text2ps to find its absolute location path. such as:
runTime.exec ("/local/bin/text2ps  -l  -m  t.1.25, b.5,.5  -r 60  -c 165 ....
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Cloud-based technologies and services will continue to grow in popularity in 2017 thanks to the simple, scalable and cost-effective solutions they deliver. Here are three areas where cloud adoption is poised to really take off.
Some code to ensure data integrity when using macros within Excel. Also included code that helps secure your data within an Excel workbook.
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now