【问题标题】:java will not execute my shell scriptjava不会执行我的shell脚本
【发布时间】:2013-09-08 19:38:05
【问题描述】:

我想执行这个 shell 脚本:

export.run

cd ./AndroidExport/
ant release

使用这个 java 代码:

      .....
      Runtime shell = Runtime.getRuntime();
        Process prozess = null;
        String cmd = "sh ./export/android/export.run";
        try {
            prozess = shell.exec(cmd);

        } catch (IOException ioe) {
        }
         BufferedReader in = new BufferedReader(
           new InputStreamReader(prozess.getInputStream()) );
         String line;

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

当我在控制台中执行 shell 脚本时,它会编译 android 项目并得到以下输出:

Buildfile: /home/myhome/NetBeansProjects/ITGEditor/export/android/AndroidExport   /build.xml

  -set-mode-check:

  -set-release-mode:
   [echo] *************************************************
   [echo] ****  Android Manifest has debuggable=true   ****
   [echo] **** Doing DEBUG packaging with RELEASE keys ****
   [echo] *************************************************

还有很多行,但是当我用 java 执行它时,它不会编译它,java 控制台只打印第一行:

Buildfile: /home/myhome/NetBeansProjects/ITGEditor/export/android/AndroidExport   /build.xml

问题出在哪里? 谢谢!

【问题讨论】:

  • 看看this的问题。使用ProcessBuilder 并将标准错误重定向到标准输出,也许对您也有帮助。

标签: java android shell


【解决方案1】:

尝试在你的 shell 命令中添加-l 选项:

        String cmd = "sh -l ./export/android/export.run";

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多