You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "varma (JIRA)" <ji...@apache.org> on 2010/03/23 14:15:27 UTC

[jira] Updated: (EXEC-45) Error while executing a command like echo

     [ https://issues.apache.org/jira/browse/EXEC-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

varma updated EXEC-45:
----------------------

       Priority: Major  (was: Blocker)
    Description: 
Hello,
After looking at the javaDoc for DefaultExecutor, I've tried a simple command that does an "echo" and re-direct the output to a file. But, I'm getting "IOException". Not sure what I am missing here or is it possible to execute a command directly without specifying the path to an executable? I appreciate your help.

This is what I'm trying:
{code:title=CommandExec.java|borderStyle=solid}
public final void executeEcho()
{
      try
      {
         final CommandLine command = new CommandLine( "echo someValue" );
         command.addArgument( "> c:\test.txt" );

         final DefaultExecutor executor = new DefaultExecutor();
         final int value = executor.execute( command );
         System.out.println(value);
      }
      catch(Exception e)
      {
         e.printStackTrace();
      }
}
{code}

Exception being thrown:
{code:title=exception}
java.io.IOException: Cannot run program "echo someValue": CreateProcess error=2, The system cannot find the file specified
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
	at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:246)
	at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:302)
	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:149)
	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:136)
	at testing.CommandExex.main(CommandExex.java:15)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 8 more
{code}

>From DefaultExecutor's JavaDoc:
{code}
Executor exec = new DefaultExecutor();
CommandLine cl = new CommandLine("ls -l");
int exitvalue = exec.execute(cl);
{code}

  was:

Hello,
After looking at the javaDoc for DefaultExecutor, I've tried a simple command the does an "echo" and re-direct the output to a file. But, I'm getting "IOException". Not sure what I am missing here or is it possible to execute a command directly without specifying the path to an executable? I appreciate your help.

This is what I'm trying:
{code:title=CommandExec.java|borderStyle=solid}
public final void executeEcho()
{
      try
      {
         final CommandLine command = new CommandLine( "echo someValue" );
         command.addArgument( "> c:\test.txt" );

         final DefaultExecutor executor = new DefaultExecutor();
         final int value = executor.execute( command );
         System.out.println(value);
      }
      catch(Exception e)
      {
         e.printStackTrace();
      }
}
{code}

Exception being thrown:
{code:title=exception}
java.io.IOException: Cannot run program "echo someValue": CreateProcess error=2, The system cannot find the file specified
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
	at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:246)
	at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:302)
	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:149)
	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:136)
	at testing.CommandExex.main(CommandExex.java:15)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 8 more
{code}

>From DefaultExecutor's JavaDoc:
{code}
Executor exec = new DefaultExecutor();
CommandLine cl = new CommandLine("ls -l");
int exitvalue = exec.execute(cl);
{code}


> Error while executing a command like echo
> -----------------------------------------
>
>                 Key: EXEC-45
>                 URL: https://issues.apache.org/jira/browse/EXEC-45
>             Project: Commons Exec
>          Issue Type: Bug
>    Affects Versions: 1.0.1
>         Environment: OS: Windows XP SP3
>            Reporter: varma
>
> Hello,
> After looking at the javaDoc for DefaultExecutor, I've tried a simple command that does an "echo" and re-direct the output to a file. But, I'm getting "IOException". Not sure what I am missing here or is it possible to execute a command directly without specifying the path to an executable? I appreciate your help.
> This is what I'm trying:
> {code:title=CommandExec.java|borderStyle=solid}
> public final void executeEcho()
> {
>       try
>       {
>          final CommandLine command = new CommandLine( "echo someValue" );
>          command.addArgument( "> c:\test.txt" );
>          final DefaultExecutor executor = new DefaultExecutor();
>          final int value = executor.execute( command );
>          System.out.println(value);
>       }
>       catch(Exception e)
>       {
>          e.printStackTrace();
>       }
> }
> {code}
> Exception being thrown:
> {code:title=exception}
> java.io.IOException: Cannot run program "echo someValue": CreateProcess error=2, The system cannot find the file specified
> 	at java.lang.ProcessBuilder.start(Unknown Source)
> 	at java.lang.Runtime.exec(Unknown Source)
> 	at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
> 	at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:246)
> 	at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:302)
> 	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:149)
> 	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:136)
> 	at testing.CommandExex.main(CommandExex.java:15)
> Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
> 	at java.lang.ProcessImpl.create(Native Method)
> 	at java.lang.ProcessImpl.<init>(Unknown Source)
> 	at java.lang.ProcessImpl.start(Unknown Source)
> 	... 8 more
> {code}
> From DefaultExecutor's JavaDoc:
> {code}
> Executor exec = new DefaultExecutor();
> CommandLine cl = new CommandLine("ls -l");
> int exitvalue = exec.execute(cl);
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.