Reading the output from another program.

I haven't used Java in a good long while so I need someone to point me in the right direction. I have a C program that I call from a command line (windoze boxen) and it spits out some neat data. I can call it from inside a Java program, but how do I then read the output from the calling Java program? I'd just alter the C program, but I lost the source.

This article explains how to correctly execute another program from your
Java program, and read its output:
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

Similar Messages

  • Passing the output to another program

    Passing the output to another program
    The problem I have that I don�t know how to pass the results of my java Program ( as parameter) to another application!
    I have a class �A.class� should send result �VAR_result� to application �B.application�
    Now I am using it like this: System.out (VAR_result) >> B.application
    But it could not be the right way at least because I cant make any other System.out as debug now.
    My Question please: to pass a parameter to a java is clear: A.class ( var ..)
    But how to take a parameter from a class, to use it in another Applicatin ( script )?
    Thanks a lot

    slackware2007 wrote:
    Passing the output to another program
    The problem I have that I don’t know how to pass the results of my java Program ( as parameter) to another application!
    I have a class “A.class” should send result “VAR_result” to application “B.application”
    Now I am using it like this: System.out (VAR_result) >> B.application
    But it could not be the right way at least because I cant make any other System.out as debug now.Then move your debug to System.err and use System.out as it should be used and pipe stdout to the stdin of the other application..

  • Reading the output from a object running in the local machine.

    Reading the output from a object running in the local machine.
    By using a signed applet i am lunching a small application that returns an image object, how to read that without storing it in the hard disk.
    Which means i need to read the image object return by the local application using applet or jsp .
    i am using tomacat and an html page with an applet with it to lunch the application.

    You can write that image in a binary format using OutputStream for System.out and then read it in your applet.

  • How to read the output from 'tlist entersq'

    Hi
    Where can I find information on interpreting the output from 'tlist entersq' ?
    We have a box that seems to go into a lock, no communication through network, nor terminal ttya.
    I did an abort on the panel and sync to force a memory dump
    I'm using scat to investigate the result.
    SolarisCAT(vmcore.0)> thread summary
            reference clock = panic_lbolt: 0x114c6f9                             
       11   threads ran since 1 second before current tick (11 user, 0 kernel)
       11   threads ran since 1 minute before current tick (11 user, 0 kernel)
       63   TS_RUN threads (50 user, 13 kernel)
        2   TS_STOPPED threads (0 user, 2 kernel)
       10   TS_FREE threads (0 user, 10 kernel)
        0   !TS_LOAD (swapped) threads
        0   threads trying to get a mutex
        0   threads trying to get an rwlock
      128   threads waiting for a condition variable (89 user, 39 kernel)
        1   threads sleeping on a semaphore (0 user, 1 kernel)
       12   threads sleeping on a user-level sobj (12 user, 0 kernel)
        7   threads sleeping on a shuttle (door) (7 user, 0 kernel)
        0   threads in biowait()
        1*  threads in entersq() (1 user, 0 kernel)
       63   threads in dispatch queues (50 user, 13 kernel)
      225   total threads in allthreads list (159 user, 66 kernel)
        0   thread_reapcnt
        5   lwp_reapcnt
      230   nthread
    SolarisCAT(vmcore.0)>  tlist entersq
      thread        pri pctcpu           idle   pid         wchan command
      0x300027dd7a0 142  0.024       1m41.83s  1684 0x300007fff18 /sz/tcp/bin/tig_tcp.bin
       1 thread in entersq() found.
    threads in entersq() by syncq:
    1 thread: 0x300027dd7a0
    syncq @ 0x300007ffee0
    sq_count: 0    sq_head: 0x30001de6e80  sq_tail: 0x30001de6e80
    sq_evhead: 0xcff010000 sq_evtail: 0x100000000cafe      sq_nqueues: 0
    sq_needexcl: 0 sq_private: 0x3000155dd18       sq_next: 0xbaddcafe
    sq_pri: 276
    sq_occount: 0
    sq_flags: 0x200 ()
    sq_type:  0x0
    sq_svcflags:  0x0
    sq_lock @ 0x300007ffee0:
      adaptive mutex:  owner: 0x0  waiters: false
    per-module syncq for ip
    streamtab @ 0x14ad6b0
    qinit     @ 0x14ad570
    modinfo   @ 0x14ad540
    queues:1 sq_msgs:1 sq_mblks:36 sq_alloc:13247273932581836904
    SolarisCAT(vmcore.0)> thread 0x30001de6e80
    ==== user thread: 0x30001de6e80 address translation failed for pid: 32 bytes @ 0x452e0d0a2a2a2a20
    pid: 0  PIL: 3 ====
    cmd:
    t_wchan: 0x30001dd5640 
    t_stk: 0x1263bfc  sp: 0x0  t_stkbase: 0x30002aa3ec0
    t_pri: 0  pctcpu: 0.000036  t_lwp: 0x30001de0d80  machpcb: 0x30001dd4c08
    t_procp: 0x30002df2900  p_as: 0x30002df2978  hat: 0x6420373031206368address translation failed for hat_3: 80 bytes @ 0x6420373031206368
      cnum: 0x0
    address translation failed for hat_3: 80 bytes @ 0x6420373031206368
      size: 4984936174853958176  rss: 0
    bound cpuid: 768  bound psrset: 768  last cpuid: 0 
    idle: -17371523 ticks (190888 days 10 hours 34 minutes 34.26 seconds)
    start: Wed Jul 10 21:34:52 6497
    age: -3297429488912 seconds (38164693 days 3 hours 48 minutes 32 seconds)
    swapped out: 3298566244800 (190888 days 4 hours 48 minutes 49.63 seconds later)
    interrupted (pinned) thread: 0x30001de6ef8
    tstate: unknown state
    tflg:   T_INTR_THREAD - thread is an interrupt thread
            T_WOULDBLOCK - for lockfs
            T_DONTBLOCK - for lockfs
            T_DONTPEND - for lockfs
            WAITCVSEM - waiting for a lwp_cv or lwp_sema on sleepq
    tpflg:  TP_CHKPT - thread is being stopped via CPR checkpoint
            TP_PRVSTOP - thread is virtually stopped via /proc
            TP_MSACCT - collect micro-state accounting information
            TP_STOPPING - thread is executing stop()
    tsched: none set
    pflag:  SLOAD - in core
            SLOCK - process cannot be swapped
            SPREXEC - process is in exec() (a flag for /proc)
            SSCONT - SIGCONT has been posted to the process
            SBPTADJ - adjust pc on breakpoint trap (/proc)
            SUGID - process was result of set[ug]id exec
            SJCTL - SIGCLD sent when children stop/continue
            SNOWAIT - children never become zombies
            SVFORK - process resulted from vfork
            SVFWAIT - parent of vfork waiting for child to exec
            EXITLWPS - have lwps exit within the process
            SWAITSIG - SIGWAITING sent when all lwps block
            HOLDFORK1 - hold lwps in place (not cloning)
            SMSACCT - process is keeping micro-state accounting
    pc: 0x30003e63600       0x30003e63600:  illegaltrap     0x00000000
    -- no stack --

    Hello ejp,
    First of all i thank you for the reply.
    I explain the process which i am doing in side the thread.
    After connecting to the remote machine, it asks another password.
    so i read the output after connecting. if it equals "password:", then write the 2nd password. then i read the output. it will be like "system>" . if this prompt comes like this, then i write the super user name and super user password. then the prompt will be like "system#". then i write the command which i need to execute and read the output whether the command is success or not.
    So after every output read, i interrupt the thread using interrupt() method. its working fine if i execute via GUI ie, click the button. But its not working when i scheduled this job in a scheduler ie, it will be executed when the time elapsed.
    Give an idea to fix this bug please.
    rgds
    tskarthikeyan

  • Cannot read the output from windows command.

    Hello
    I have the following classes
    package cmd;
    import java.io.IOException;
    public class CMD {
        public CMD(){
            ProcessBuilder pb = new ProcessBuilder()
            .command("cmd.exe","/c","del *.*")
            .redirectErrorStream(false);
            Process p;
            try {
                p = pb.start();
                StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "ERROR");
                // any output?
                StreamGobbler outputGobbler = new StreamGobbler(p.getInputStream(), "OUTPUT");
                // start gobblers
                outputGobbler.start();
                errorGobbler.start();
            } catch (IOException e) {
                // TODO Auto-generated catch block
            System.out.println("eee "+e.getMessage());;
        public static void main(String[] args) {
            System.out.println("x");
            new CMD();
            System.out.println("x");
    and
    package cmd;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    public class StreamGobbler extends Thread {
        InputStream is;
        String type;
        StreamGobbler(InputStream is, String type) {
            this.is = is;
            this.type = type;
        @Override
        public void run() {
            try {
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);
                String line = null;
                while ((line = br.readLine()) != null)
                    System.out.println(type + "> " + line);
            catch (IOException ioe) {
                ioe.printStackTrace();
    Please note that I cannot seee the output from wndows command : del *.* and the java class execution does not finished.
    I I will replace the above command with the dir command then the output of the command is visible.
    Would you give me a hint about how to modify the above clases in order to parse the output of the del *.* ?
    Please note that the above example is important because I am developping a tool and it is mandatory for that tool to parse the output from a windows batch command.
    Best regards,

    Please note that I cannot seee the output from wndows command : del *.* and the java class execution does not finished.
    I I will replace the above command with the dir command then the output of the command is visible.
    Would you give me a hint about how to modify the above clases in order to parse the output of the del *.* ?
    No - but I will give you a hint about ProcessBuilder and how to develop software properly.
    Hint #1: Don't try to automate something that you don't know, or understand, how to do manually.
    a. Do you know how to execute 'del *.*' manually in a command window?
    b. Did you try that manually to see what happens?
    My guess is 'no'. If you had you would know that the response to a 'del *.*' command is going to be this:
    Are you sure (Y/N)?
    And your 'java class execution' doesn't finish because the 'del' command is waiting for you to answer that question.
    Hint #2: Don't try to use ProcessBuilder for an application that requires console input unless you first know how to provide that console input via your Java code.
    Your code will wait forever since it does NOT answer that question.
    Search the net and The Java Tutorials and  you can find examples of executing command line utilities. Then try those examples first and make sure that:
    1. They work for you
    2. You understand HOW they work
    Then you can modify those examples to do what you want to do.

  • Reading The Output From A POST To A Webserver

    Any suggestions on the following would be greatly appreciated!! From all examples, what I'm doing is correct, but I can't get the results of the Post.
    I am trying to do the following:
    1. Connect to a webserver through a URL object.
    2. POST a user name and password to a login screen.
    3. Read the Data Page that comes after login.
    I have successfully done item 1, but am failing at either item 2 or 3.
    I have read the forum extensively on Posting to webservers and have followed many examples. However my application does not get past the login screen. My application does not error, but the html that I read is the html of the Login Screen and not the html of the Data Page.
    Here's my code:
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
         public class HttpPostReader3 {
         StringBuffer lineBuff;
         public HttpPostReader3() {
    lineBuff = new StringBuffer();
    URL url;
    HttpURLConnection connection=null;
    String queryparam = "https://a_website/login.asp";
    try
    // Get URL
    url = new URL(queryparam);
    // Get a HttpURLConnection Object
    connection = (HttpURLConnection)url.openConnection();
    // prepare for both input and output
    connection.setDoOutput(true);
    // set request to post
    connection.setRequestMethod("POST");
    // Encode the URL POST String and assemble it
    String postparameter = URLEncoder.encode("txtUserID") + "=" + URLEncoder.encode("a_user_id");
    postparameter += "&" + URLEncoder.encode("txtPassword") + "=" + URLEncoder.encode("a_password");
    postparameter += "&" + URLEncoder.encode("chkAutoLogin") + "=" + URLEncoder.encode("Y");
    postparameter += "&" + URLEncoder.encode("Login") + "=" + URLEncoder.encode("Login");
    // Create a outstream for posting the parameters and set the outstream to ASCII data
    OutputStreamWriter outStream = new OutputStreamWriter(new BufferedOutputStream(connection.getOutputStream()),"ASCII");
    outStream.write(postparameter); // POST occurs here for name value pairs
    outStream.close();
    // get output streams of connection
    BufferedReader in = new BufferedReader( new InputStreamReader( connection.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null)
         System.out.println(inputLine);
         lineBuff.append( "\n" );
         lineBuff.append( inputLine );
    catch(IOException e)
    System.out.println(e);
    //WRITE OUTPUT HTML TO A TEXT FILE CALLED UNTITLED.TXT
                   String htmlFile;
                   htmlFile = lineBuff.toString();
              // Read and append data to a text file
              try{
              String fileName = "untitled.txt"; // Filename
              // Make the inputfile object
              FileInputStream fi = new FileInputStream(fileName);
              byte inData[] = new byte[fi.available()];
              fi.read(inData); // Read
              fi.close(); // Close
              String text = new String(inData); // Make a textstring...
              // Now, do whatever you want with the data... and append...
              String textToAppend = "xyzzzz";
              //byte outData[] = textToAppend.getBytes();
              byte outData[] = htmlFile.getBytes();
              // Make the outputfile (whith the 'append' boolean set to true
              FileOutputStream fo = new FileOutputStream(fileName,true);
              fo.write(outData);
              fo.close();
              }catch(Exception oops){
                   System.out.println("error with untitled.txt");
                   finally
                             System.exit(0);
              public static void main(String[] args)
                                  HttpPostReader3 h = new HttpPostReader3();//constructor
    } //End HTTPPostReader3

    You are very wise, but I have thought of that. Login.asp creates an html page that has a <form> statement with a submit action (Post) to login.asp. I pulled this out of the html.
    I did get lucky and found that for a bad login, the asp replies with "Bad Login". Since I know the login, I tried both the good login and a bad login. I found that I am posting correctly and logging in (at least my login is recognized as good and bad as bad).
    However, I don't get the information of the next page (the next page does come from default.asp)!
    WHAT DO I KNOW:
    1. I am posting correctly.
    2. My login was recognized as good.
    3. I don't get the next page, which comes from default.asp. Note, you can't go to default.asp directly, it will send you back to login.asp.

  • How to capture the output of another program into a File/String

    I needed to capture the output of a dos program in an String/file I tried doing Runtime.getRuntime.exec("ipconfig /all >tmp.txt");
    but still I am unable to capture the output frm the program which I would like to capture in a file or String.Can anyone help

    When you use the Runtime.exec() method, it returns a Process object, that process object has access to the streams; stdout, stdin, and stderr of the application you just executed. what you'll want to monitor is the stdout or stderr streams using the
    p.getInputStream() or p.getErrorStream(), where p = the process object returned via the Runtime.exe() method.

  • How to invoke the compiler from another program

    Hi guys,
    Suppose I have a source code located in the file MyClass.java.
    Now suppose I'm running another program, and in this program I want to compile the MyClass.java file and create the MyClass.class file. Is there a way of doing it through the standard API?
    Thanks.

    I believe Java 1.6 has a Compiler class as a part of it's "standard" API. Before that, you've got a package called tools.jar in your SDK directory, which is a Java gateway to the compiler

  • Paste is only pasting a text field instead of an image copied to the clipboard from another program like mail or safari?

    The latest version of Keynote only pastes a blank text field after copying an image to the clipboard in other applications like mail or Safari.  The previous version worked fine with copying and pasting images.  Saving the image to a file and then inserting the image file is the only work-a-round I have found so far.

    To place an image on a slide, use Finder to drag and drop the file onto the slide.

  • Read the output of the iseries CL Program from Java

    I have a Java program running on the iseries(AS400). I need to call a CL program from this JAVA.I have to pass 7 arguments to it.Out of 7, three are input parameters to CL and other 4 are its output parameters to the calling JAVA program. I am using Runtime.getRuntime().exec(arguments) to call the CL. Please suggest me how to read the output from the CL in the JAVA program.

    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
    Kidding:
    If a method has at least 7 parameters, chances are one or two have been forgotten.

  • What is the best way to run two programs simulataneously using the output from one to run the other?

    I just kind of wanted to get an opinion from some people on here. I have two main VIs. The first is a DAQ system that reads 99 different sensors and feeds that data into an array. The second is a real-time processing system that is designed to take the array and do numerous calculations. Both VIs output data to the front panel that I want to see, so I don't want to just use one as a SubVI.
    Is there a simple way to run both VIs, using the output from the DAQ system to feed the processor so that you can easily see the front panels of both VIs? I had considered just copying the real-time processor code into the DAQ VI, but I'm worried the resultant VI will be very large and unsightly.
    On a side note, am I over thinking this? Excuse me if this is a rather dumb question, it's been a long week...aaaand it's Wednesday.
    Solved!
    Go to Solution.

    There are a number of ways that you can go about this, but having both front panels open isn't a problem (assuming there is screen space!). Both could be sub-vi's of another "calling" vi, with their front panels set to open when called. The data from the DAQ side can be sent to the other through a number of ways, "producer-consumer" (many threads about this topic, examples in the LabVIEW examples, etc.) is one of the more robust techniques. If created correctly it allows one to run at a different rate than the other, although if the producer is "producing" much faster than the consumer can "consume" it will end up with problems.
    I guess I type too slowly
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Reading the data from one component view into another component view

    Hi All,
    I have requirement to read the data from one component into another component while creating the service order. Here are the details.
    Main View for Service order: BT116H_SRVO in that we have two assignment blocks like Organizational data(BTORGSET) and amount allocation(BTAMNTALL).This two blocks are two different component which are associated with main component(BT116H_SRVO).
    I need to read the sales org data from component/View(BTORGSET/Orgsetdata) into Component/View(BTAMNTALL(HdrBillPlanDet) method DO_VALIDATE_INPUT.
    I searched in SDN but all the posts are related to the data exchange between two views in same component. But My scenario is different as explained above.
    Refer the attachments for the component link..
    Please let me know how we can achieve this one..
    Thanks,
    Sapsar.

    Finally I was able to fix my code...My Mistakes were need to read the parent node above three levels and need to use the relation entity name while reading the data..
    Below is the correction code
    IF iv_index IS NOT INITIAL.
         lr_iterator ?= collection_wrapper->get_iterator( ).
         lr_current ?= lr_iterator->get_by_index( iv_index ).
         lr_entity ?= lr_iterator->get_by_index( iv_index ).
       ELSE.
         lr_current = collection_wrapper->get_current( ).
       ENDIF.
    *loop back to root entity
             WHILE lr_entity->get_name( ) NE 'BTAdminH'.
               lr_entity = lr_entity->get_parent( ).
             ENDWHILE.
    *Get the related entity
             IF lr_entity IS BOUND.
               lr_collection ?= lr_entity->get_related_entities( iv_relation_name = 'BTHeaderOrgmanSet' ) .
               IF lr_collection IS BOUND.
                 lr_orgset_m = lr_collection->get_current( ).
    *            lr_orgset = lr_orgset_m->get_related_entity( iv_relation_name = 'BTOrgSet' ).
                 lr_orgset = lr_orgset_m->get_property_as_string( 'SALES_ORG' ).
               ENDIF.
             ENDIF.
    Thanks,
    Sapsar.

  • Set the parameter in the selection screen of a program from another program

    Hi ALL,
    I need to call the program RHALESMD from another program and the program RHALESMD takes from date as one of the input parameter.how do i set the from date from the calling program and call RHALESMD
    Thanks
    Bala Duvvuri

    i got the answer
    Program accessed
    REPORT report1.
    DATA text TYPE c LENGTH 10.
    SELECTION-SCREEN BEGIN OF SCREEN 1100.
      SELECT-OPTIONS: selcrit1 FOR text,
                      selcrit2 FOR text.
    SELECTION-SCREEN END OF SCREEN 1100.
    Calling program
    REPORT report2.
    DATA: text       TYPE c LENGTH 10,
          rspar_tab  TYPE TABLE OF rsparams,
          rspar_line LIKE LINE OF rspar_tab,
          range_tab  LIKE RANGE OF text,
          range_line LIKE LINE OF range_tab.
    rspar_line-selname = 'SELCRIT1'.
    rspar_line-kind    = 'S'.
    rspar_line-sign    = 'I'.
    rspar_line-option  = 'EQ'.
    rspar_line-low     = 'ABAP'.
    APPEND rspar_line TO rspar_tab.
    range_line-sign   = 'E'.
    range_line-option = 'EQ'.
    range_line-low    = 'H'.
    APPEND range_line TO range_tab.
    range_line-sign   = 'E'.
    range_line-option = 'EQ'.
    range_line-low    = 'K'.
    APPEND range_line TO range_tab.
    SUBMIT report1 USING SELECTION-SCREEN '1100'
                   WITH SELECTION-TABLE rspar_tab
                   WITH selcrit2 BETWEEN 'H' AND 'K'
                   WITH selcrit2 IN range_tab
                   AND RETURN.
    Thanks
    Bala Duvvuri

  • A client is curious to see if I export HTML from Adobe Muse, will he be able to edit the HTML in another program?

    A client is curious to see if I export HTML from Adobe Muse, will he be able to edit the HTML in another program?

    Thank you. I thought so, but just wanted to confirm. I appreciate the feedback.
    -Joe

  • How to read the data from a file in another computer with user name and password login

    How to read read the data from a file in anohter computer which need to login with user name and password?

    duplicate post:  http://forums.ni.com/t5/LabVIEW/log-on-the-other-computer-with-user-name-and-password/m-p/2061478
    duplicate post:  http://forums.ni.com/t5/LabVIEW/do-need-to-enter-the-user-name-and-password-when-TCP-ip/m-p/2061612
    duplicate post   http://forums.ni.com/t5/LabVIEW/log-on-the-other-computer-with-user-name-and-password/m-p/2060682

Maybe you are looking for

  • Mini- DVI to VGA adapter Or is that, DVI to DVI?

    I am having difficulty figuring out which adapter to purchase if I want to use my MacBook to make a Keynote or PowerPoint Presentation with an LCD projector. Do I need the Mini- DVI to VGA adapter, or is it DVI to Video adapter, or DVI to DVI adapter

  • FlashHelp files not displaying in topic pane

    I have generated FlashHelp using RoboHelp 7. I then copied the FlashHelp folder to a server via FTP. When I view the ...index.htm file in the !SSL! folder on my C drive, the system displays correctly. When I view the ...index.htm file in the FlashHel

  • How to re actived user SAP* after disable this account

    hi guys, i have some accident with my sap Portal,  today i was install SAP EP with success, and then i try to create new user to change account sap*, but i forget give a new user to super user role . my question is how to reactived user sap* ? thanks

  • Import from mpeg4?

    I just bought my first Mac a few weeks after buying a new digital video camera (that doesn't have firewire) - now I find out iMovie needs firewire connection to work as advertised. When I do connect with USB, my MAC doesn't recognize the camera as a

  • How to Configure Recurring post in OUtgoing payments

    hi ,Plz help to configure recurring post for Post dated transactoin