Accepted answer

it's not eclipse who cannot run the svd program but the jvm, because it cannot find svd's path on the system.

you should put your svd program on $path variable so that when the jvm runs your program and finds a call to svd, it should know where this svd program is located so it may call it.

for how to configure your $path variable on osx, check here : setting environment variables in os x?

i also noticed you use runtime to run external programs in your java program. that is an ancient way to run external programs in java. you should consider using the processbuilder instead. it's much more flexible, and is considered the best choice to run external programs now:

processbuilder pb = new processbuilder("svd");
process p = pb.start();
//you could also read the error stream, so that when svd is not correctly set on the running system, you may alert the user.
bufferedreader br = new bufferedreader(new inputstreamreader(p.geterrorstream()));
stringbuilder sb = new stringbuilder();
string line;
while ((line = br.readline()) != null) {

int retcode = p.waitfor();
if(retcode == 2){
    //alert the user that svd is not correctly set on path variable.
    system.out.println("error!! could not run svd  because it's not correctly set on path variable");

Related Query

More Query from same tag