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
Priority: Blocker
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}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.