я запускаю команду оболочки при весенней загрузке, но процесс = Runtime.getRuntime (). exec (cmd) не запускается - PullRequest
0 голосов
/ 17 ноября 2018

я запускаю следующий код в весенней загрузке и java, но process = Runtime.getRuntime (). Exec (cmd) не запускается в весеннем загрузочном приложении. В чистом Java-приложении это нормально. при весенней загрузке он не сообщает об исключении или ошибке. Вы можете мне помочь?

public String convetor(String videoInputPath,String basepath) {
    File output = new File("/root/output.txt");
    File error = new File("/root/error.txt");
    File tmp = new File(videoInputPath);
    String des = tmp.getName();
    String[] filename = des.split("\\.");
    String dest = basepath+filename[0] + ".ts";

    System.out.println(videoInputPath);
    List<String> command = new ArrayList<String>();
    command.add("ffmpeg");
    command.add("-i");
    command.add(videoInputPath);
    command.add("-vcodec");
    command.add("copy");
    command.add("-vbsf");
    command.add("h264_mp4toannexb");
    command.add(dest);
    ProcessBuilder builder = new ProcessBuilder(command);
    Process process = null;
    String cmd = "ffmpeg -i " + videoInputPath + "-vcodec copy -vbsf h264_mp4toannexb "+dest;
    try {
        System.out.println("==============");
        builder.redirectOutput(output);
        builder.redirectError(error);
//            process = builder.start();
        process = Runtime.getRuntime().exec(cmd);
        System.out.println("++++++++++++");
        InputStreamReader isr = new  InputStreamReader(process.getInputStream());
        BufferedReader br = new BufferedReader(isr);

        String lineRead;
        while ((lineRead = br.readLine()) != null) {

        }
        process.waitFor();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    catch (InterruptedException e){
        e.printStackTrace();
    }
    return dest;

}`
...