首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java IOException

Java IOException
EN

Stack Overflow用户
提问于 2011-05-03 13:36:51
回答 1查看 4.9K关注 0票数 3

我正在执行下面的程序,它通过java调用shell,我得到了excepton,请帮助我。

程序:

代码语言:javascript
复制
import java.io.*;
import java.util.*;


public class ProcessExample {

/**
 * @param args
 */
 public static void main(String args[]) throws IOException {

       File file=new File("/opt/nilesh/fazal");


       ProcessBuilder processBuilder = new ProcessBuilder("./LicenseGen.sh --batchfile commands.txt");
       processBuilder.directory(file);
       processBuilder.redirectErrorStream(true);
       System.out.println("nilesh");
        Process process=processBuilder.start();      

       InputStream is = process.getInputStream();
       InputStreamReader isr = new InputStreamReader(is);
       BufferedReader br = new BufferedReader(isr);

       String line;

       System.out.printf("Output of running %s is:", 
          Arrays.toString(args));

       while ((line = br.readLine()) != null) {
         System.out.println(line);
       }

       OutputStream os=process.getOutputStream();
       OutputStreamWriter osw=new OutputStreamWriter(os);
       BufferedWriter bw=new BufferedWriter(osw);
       bw.write("create licensekey -x license-input.xml");

       while ((line = br.readLine()) != null) {
         System.out.println(line);
       }

     }

}

还有一个例外

代码语言:javascript
复制
Excepton:Exception in thread "main" java.io.IOException: Cannot run program "./LicenseGen.sh --batchfile commands.tx": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at ProcessExample.main(ProcessExample.java:23)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 1 more
EN

回答 1

Stack Overflow用户

发布于 2011-05-03 13:41:40

代码语言:javascript
复制
ProcessBuilder processBuilder = 
    new ProcessBuilder("./LicenseGen.sh","--batchfile","commands.txt");

您需要将命令和args作为单独的字符串或列表进行传递。

http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5865473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档