Hi Mohammed,

added the following test

    /**
     * Call a script to dump the environment variables of the subprocess
     * after adding a custom environment variable.
     *
     * @throws Exception the test failed
     */
    public void testAddEnvironmentVariables() throws Exception {
        Map myEnvVars = new HashMap();
        myEnvVars.putAll(EnvironmentUtils.getProcEnvironment());
        myEnvVars.put("NEW_VAR","NEW_VAL");
        exec.execute(new CommandLine(environmentSript), myEnvVars);
        String environment = baos.toString().trim();
        assertTrue(environment.contains("NEW_VAR"));
    }

and it works

Cheers,

Siegfried Goeschl


On 9/6/10 8:40 AM, Mohammed Sanaulla wrote:



On 6 September 2010 02:02, Siegfried Goeschl
<[email protected] <mailto:[email protected]>> wrote:

    Hi Mohamed,

    can you have a look at DefaultExecutorTest#testExecuteWithEnv() to
    check what's missing or wrong -
    
http://commons.apache.org/exec/xref-test/org/apache/commons/exec/DefaultExecutorTest.html

I see that the existing Environment variables from the current Process
arent being copied instead only a new variable is being added (lines-
145,146)

I did the following in my Code:
Map myEnvVars = new HashMap();
myEnvVars.putAll(EnvironmentUtils.getProcEnvironment());
myEnvVars.put("NEW_VAR","NEW_VAL");

Regards,
Mohamed Sanaulla.



    On 9/5/10 10:09 PM, Mohammed Sanaulla wrote:

        I was able to execute the command. I got the environment
        variable map from
        the EnvironmentUtils and then added a new entry for TERM and
        then passed
        this Map along with execute() method of the DefaultExecutor.

        -
        Mohamed Sanaulla

        On 6 September 2010 00:43, Mohammed
        Sanaulla<[email protected] <mailto:[email protected]>>
          wrote:

            Hi all,
            I have recently started to use Exec. I was trying to execute
            "proz" command
            (Command for Prozilla) on Linux using the CommandLine and
            DefaultExecutor as
            an asynchronous process. When ever I try to run the program
            I get the
            following error: Error opening terminal: unknown.

            And the code terminates with Exit Value=1.

            I did a bit of research to find out that- its not able to
            determine the
            type of terminal. So there were solutions to set the value
            of $TERM with the
            value obtained from "echo $TERM" (which in my case is
            xterm). I had a look
            at the EnvironmentUtils class and tried to use it to set the
            value of $TERM
            before executing the command. I used the following to set it:

            Map environment = EnvironmentUtils.getProcEnvironment();

            
EnvironmentUtils.addVariableToEnvironment(EnvironmentUtils.getProcEnvironment(),"TERM=xterm");

            But am not able to set the env variable. Any idea what's
            going wrong in
            both the places (executing the command and setting the env
            variable)

            Regards,
            Mohamed Sanaulla




    ---------------------------------------------------------------------
    To unsubscribe, e-mail: [email protected]
    <mailto:[email protected]>
    For additional commands, e-mail: [email protected]
    <mailto:[email protected]>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to