in reply to running jar file with multiple arguments in perl

Bringing Java into Perl would be a good place to start. Try some code, then post the results here so that we can help you.
  • Comment on Re: running jar file with multiple arguments in perl

Replies are listed 'Best First'.
Re^2: running jar file with multiple arguments in perl
by compiler9999 (Initiate) on May 29, 2010 at 13:49 UTC
    Hi Khen, Ive already posted here what i have done so far : Here it is :
    system("java -jar program.jar < abc.txt") and
    OPEN PIPE, "|java -jar program.jar"; open FH, /abc.txt while (my $res = <FH>) print PIPE "$res"; close FH; close PIPE;

    but not working as expected.
    Thanks.
      OPEN PIPE, "|java -jar program.jar";

      That's barely valid Perl code. If you get error messages, tell us those error messages. When I run your Perl code, I get the following error message:

      Useless use of a constant in void context at -e line 1. Can't locate object method "OPEN" via package "PIPE" (perhaps you forg +ot to load "PIPE"?) at -e line 1.

      This is because your code makes little sense without further context. I highly doubt that your program is even launching your jar file for you at all.

        Hi Corion,
        Sorry i thought khen was the one answering. Anyways, this is the code i am not sure if i have missed something, i cannot try the code at home its in the office as far as i remember it is working. To simplify the code it should be like this :
        open PIPE, "| java -jar java_program.jar"; print PIPE "$string"; close(PIPE);

        hope you are now convinced i have code. and not pretending i have. Thanks anyway.
        Hi Khen, Its actually running, the problem is it will only get the first value of the abc.txt. The jar file actually able to run. My problem is i don'tknow how to pass the second value.
        The output of the jar file is as below :
        e.g :
        A. Choose value 1 :
        1 Windows
        2 Unix
        Input : 2 <Enter>
        B. Choose value 2 :
        1 Oracle
        2 DB2
        Input : 1 <Enter>