我想运行一个二进制文件,它是通过Java代码Genia Sequence Splitter。这个二进制文件是x型可执行文件,没有扩展名。我可以使用./geniass arg1 arg2
在终端运行该文件,其中arg1是输入文件arg2是输出文件 我想自动执行此过程。我尝试使用此代码在Ubuntu中使用Java运行二进制文件
public class geniaSSTag {
public static void geniaSS(String inputFile){
System.out.println("Input file: "+inputFile);
String[]cmd={"bash","geniass/./geniass","in.txt","out.txt"};
try {
String errOutput="";
Process process = Runtime.getRuntime().exec(cmd);
String s = "";
BufferedReader br = new BufferedReader(new InputStreamReader(process
.getInputStream()));
while ((s = br.readLine()) != null)
{
s += s + "\n";
}
System.out.println(s);
BufferedReader br2 = new BufferedReader(new InputStreamReader(process.getErrorStream()));
while (br2.ready() && (s = br2.readLine()) != null)
{
errOutput += s;
}
System.out.println(errOutput);
} catch (IOException ex) {
Logger.getLogger(geniaSSTag.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
但是当我尝试运行我得到这个错误
geniass /./ geniass:geniass /./ geniass:不能执行二进制文件
我该如何解决这个。任何帮助表示赞赏。
谢谢
该文件是否可执行文件?你做了一个chmod + x文件名吗? –
你是否尝试用绝对路径运行它?除了bash是不必要的。 – soulcheck
尝试使用String [] cmd = {“绝对路径到geniass”,“in.txt”,“out.txt”}; – soulcheck