Don't redirect output or Runtime.exec()

Hello, I am using Runtime.exec() to execute a .bat file on a windows xp machine. I am able to read the output within the java app just fine. The problem is that I don't want the output to be redirected to a java stream as the default behavior of Runtime.exec() enforces. Is there anyway to run a .bat file and have the output stay in the DOS window that appears?

Thanks for the input so far. Here is more detail. I have to execute the bat file. No way around that one. I tried getting no window to pop up but the only solution I found to this was to create a shortcut and launch the process with a minimized window. Not to keen on this solution as it isn't very elegant. Plus it would be very very bad if the window was closed in the middle of execution. If anybody knows of a better way not to have the window show up I would like to hear it.
So now I am stuck with a blank DOS window. I figure the next best thing is to just use the window and have the output that normally shows up there to actually show up there when launched from a java process. This way hopefully the user realizes something is running in the window and they shouldn't close it.
You would think java would have some way to a launch a process and forget about it.

Similar Messages

  • How to capture output from Runtime.exec() ?

    Hi,
    Well, the question is in the subject ...
    I'd like to capture the output of a process ran by Runtime.exec() in order to process it.
    thanks,
    ionel

    Okay ...
    Sorry for the post !
    I found the solution : Runtime.exec().getOutputStream()
    Thanks however
    ionel

  • Using redirection operator ( ) in Runtime.exec()

    I am trying to execute a command "cat abc.txt > 123.log" from my Java program using Runtime.exec(). However, the exec() command isnt able to interpret ">" as an operator, instead it uses this as a string. Any suggestions on how I can run the above command using exec()???

    hi hiwa,
    could u tell me, why dont this
    e, why dont this program is not clearing the screen
    in linux. though some commands are working like
    "poweroff", "reboot"..
    public class ExecuteCommand{
    public static void main(String[] args) throws
    ws Exception{
    String[] cmd = {"sh","-c","clear"};
    //String cmd = "clear";
    Runtime rt = Runtime.getRuntime();
    rt.exec(cmd);
    Commands like "poweroff" and "reboot" work on underlying system while "clear", "cd" etc.
    work on current shell. Current shell is the shell on which we have invoked java command.
    But the shell java runtime invokes is not(can't be) current shell but its child, a sub-process.
    Thus we don't see current shell window cleared by a java runtime program.

  • Capturing output from Runtime.exec()

    I want to be able to get the jvm version by calling "java.exe -version" from within a java application. The following code executes fine (given all the stuff I left out of this post) except for the fact that the inputstream only reads null from the process.
    Anybody have any ideas of why I can't capture the output? This same code works fine if I execute a bat file which calls "java -version".
    final private String[] versionInfo ={"cmd","/c","\"C:\\Program Files\\java\\bin\\java\"", "-version"};
    try{
                   //execute new process
                   System.out.println("executing process");
                   Runtime runtime = Runtime.getRuntime();
                   Process proc = runtime.exec(cmd,env);
                   System.out.println("initializing streams");
                   //read output
                   InputStream inputstream = proc.getInputStream();
                   InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
                   BufferedReader bufferedreader =     new BufferedReader(inputstreamreader);
                   String line;
                   System.out.println("reading output");
                   while ((line = bufferedreader.readLine())!= null){
                        System.out.println("read something");
                        System.out.println(line);
                        outputText.append(line);
                        outputText.append("\r\n");
                        outputText.update();
                   System.out.println("finished reading");
                   //check for errors
                   try {
                        if (proc.waitFor() != 0) {
                             System.err.println("exit value = " + proc.exitValue());
                   }catch (InterruptedException e) {
                        System.err.println(e);
              }catch(Exception e){
                   e.printStackTrace();
              System.out.println("exiting execute method");

    What's wrong with just using one or more of the following System Properties?
    java.vendor=Sun Microsystems Inc.
    java.vendor.url=http://java.sun.com/
    java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
    java.version=1.4.2_04
    java.vm.info=mixed mode
    java.vm.name=Java HotSpot(TM) Client VM
    java.vm.specification.name=Java Virtual Machine Specification
    java.vm.specification.vendor=Sun Microsystems Inc.
    java.vm.specification.version=1.0
    java.vm.vendor=Sun Microsystems Inc.
    java.vm.version=1.4.2_04-b05If you insist on using an external process, this article may help.
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

  • Runtime.exec on Mac

    How to use runtime.exec on Mac. I need to start iCal and I don't know how. calling runtime.exec("iCal") , runtime.exec("/Applications/iCal") and runtime.exec("/Applications/iCal.app") throws error. Please help. I don't know anything about Mac.

    Yes I did the second way and it gives a runtime
    error. I wrote a program that accepts argument and
    then executes it using getRuntime().exec(argument);
    I am still not able to start any programs under Mac.
    The problem is that I don't know anything about Mac.Suggestion.
    Figure out how to launch it from the terminal. That should give you an idea of what the command should be I think.
    Sorry I can't remember OTOH how to get into the terminal but I know you can.

  • Can't redirect the Runtime exec output

    I'm trying to get mysqldump to give me some output which I can redirect to the tmp1 location
                   String tmp2 = "mysqldump";
                   Runtime rt1 = Runtime.getRuntime();
                   if(File.separatorChar == '\\') {
                        tmp2 = "\"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump\"";
                   tmp1 = tmp2 + " > " + tmp1;
                   rt1.exec(tmp1);All I want to see at this point is just the error message telling me how to use mysqldump.
    After that I'll do something useful.
    I'm running under NetBeans and if I don't try to redirect I get nothing in the output window.
    Of course, if I run it from a Command box, I see the expected output.
    I know I'm running the program because if I change it to the nonsense mysqldump3, it will tell me that it can't find the file.
    I can't figure out where the output is going and how to capture it.
    Any ideas would be appreciated.
    Ilan

    Ilan wrote:
    Hi Sabre,
    Since I didn't understand your code, I'll use it as a chance to learn something.
    I don't understand what cmd.exe is doing. It is just opening a DOS box?No! It is interpreting the command string.
    Why do you need that? (Maybe I do and I don't know so....)You need to learn a good bit more about your operating system. Get a good book on Windows.
    >
    The simplest thing would be String command = "mysqldump > file.sql".
    Why shouldn't that work?1) Because the directory containing your mysqldump is not in the PATH.
    2) Because the redirection operator '>' is only applicable when interpreted by the command processor (cmd.exe). Reads your Windows manual.
    >
    The reason I need the explicit path is because mysqldump isn't on my Windows path (Linux is nicer that it is in usr/bin, so there is no problem.)
    So I detect Windows and for Windows put the path and command in quotes.
    (Now that I think about it, cmd.exe probably wouldn't work in Linux anyway.)On Linux you will need your shell to interpret the redirection operator '>' .
    >
    What is that "/C" all about? Go to drive c:?
    Your first attempt looks like a confusion with mysqldump, once without a path followed by a path.
    That one I don't understand at all.
    How do I go about getting control of the stderr, if I don't already have control?
    BTW, I haven't yet tried it in Linux. First I'll get the Windows version going.
    Thanks for your reply. I'll try to learn from it.You need to read, read again, study and then implement the recommendations in http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html .
    Sorry if this sounds like I'm passing the buck but your lack of knowledge of Windows, Linux and Runtime.exec() means I cannot help without writing a large tutorial.

  • Runtime.exec does not work for commands with lengthy outputs

    I need to use Runtime.exec to run some custom commands on a Unix box. I have been doing this for quite some time now and had begun to feel comfortable when recently I started facing a problem. The thing is, whenever there is a command which prints a lot of data on to the console, the program is not able to exit from the waitFor method. Is there some thing that can be done about this?
    Following is a part of the code I use:
    Runtime rt = Runtime.getRuntime();
    Process p = rt.exec (command);
    System.out.println ("Got the process");
    int exitValue = p.waitFor();
    System.out.println ("Exit value: " + exitValue);When the output of the "command" is lengthy, it hangs after printing "Got the process".
    PS: By lengthy output, I mean that the command results in printing lines to the console which might be more than 100 in number. Say, something like what "ls -R /" would do in Unix / Linux.

    From java.lang.Process API doc:
    The Runtime.exec methods may not work well for special processes on certain native platforms, such as native windowing processes, daemon processes, Win16/DOS processes on Microsoft Windows, or shell scripts. The created subprocess does not have its own terminal or console. All its standard io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process through three streams (Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream()). The parent process uses these streams to feed input to and get output from the subprocess. Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock.
    So you need to consume the process' output. Check the StreamGobbler example from this article.
    Hope it helps.

  • Runtime.exec() output streams

    Hi,
    I am using Runtime.exec() to execute a whole slew of commands - running batch files and executables. It is really important that I can see the output of my programs, and the fact that Runtime.exec() doesn't spawn its own Command-Prompts is a little disconcerting. In order to get around this, I am handling the stdout and stderr output streams from the processes synchronously with threads (as detailed in the Java Pitfall article - http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html). I call Runtime.exec(command[], env[], dir) where command contains "cmd.exe" "\C" command.
    My question is, if one of my processes crashes, will my threads receive ALL of the output from stdout and stderr just as a Command-Prompt would? If not, what is the workaround? Using Psexec to run the processes seems to bring up the Command-Prompts like I would like it to, but that doesn't always behave the way it should be, so I cannot rely on that just to see the command prompts.
    I don't want to have to switch to C# or C++ to do this at this point, but if there's no real answer, it looks like I might have to.

    cotton.m wrote:
    munky135 wrote:
    Hi,
    I am using Runtime.exec() to execute a whole slew of commands - running batch files and executables. It is really important that I can see the output of my programs, and the fact that Runtime.exec() doesn't spawn its own Command-Prompts is a little disconcerting.Hilarious. Oh. You were being serious there were you? :|Yes, I was being serious. I call runtime exec and I am not getting Command-Prompts to pop up, their output is being piped to my Java application. Reading directly from the API:
    The Runtime.exec methods may not work well for special processes on certain native platforms, such as native windowing processes, daemon processes, Win16/DOS processes on Microsoft Windows, or shell scripts. The created subprocess does not have its own terminal or console. All its standard io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process through three streams (Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream()). The parent process uses these streams to feed input to and get output from the subprocess. Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock.
    >
    I don't want to have to switch to C# or C++ to do this at this point, but if there's no real answer, it looks like I might have to.Based on your attitude you should switch. You obviously hate Java and are ready to see faults that don't exist based on misconceptions that you hold. Fine, to each their own. Choose a language you like then. Which at a guess I would say is likely VB.Huh? I love Java. Any misconceptions I hold are from this guys article here - http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

  • How to display Runtime.exec() command line output via swing

    Hi all, I'm new to java but have a pretty good understanding of it. I'm just not familiar with all the different classes. I'm having trouble capturing the output from a command I'm running from my program. I'm using Runtime.exec(cmdarray) and I'm trying to display the output/results to a JFrame. Once I get the output to display in a JFrame, I'd like it to be almost like a java command prompt where I can type into it incase the command requires user interaction.
    The command executes fine, but I just don't know how to get the results of the command when executed. The command is executed when I click a JButton, which I'd like to then open a JFrame, Popup window or something to display the command results while allowing user interaction.
    Any examples would be appreciated.
    Thank you for your help in advance and I apologize if I'm not clear.

    You can get the standard output of the program with Process.getInputStream. (It's output from the process, but input to your program.)
    This assumes of course that the program you're running is a console program that reads/writes to standard input/output.
    In fact, you really should read from standard output and standard error from the process you start, even if you're not planning to use them. Read this:
    When Runtime Exec Won't

  • How to capture output of java files using Runtime.exec

    Hi guys,
    I'm trying to capture output of java files using Runtime.exec but I don't know how. I keep receiving error message "java.lang.NoClassDefFoundError:" but I don't know how to :(
    import java.io.*;
    public class CmdExec {
      public CmdExec() {
      public static void main(String argv[]){
         try {
         String line;
         Runtime rt = Runtime.getRuntime();
         String[] cmd = new String[2];
         cmd[0] = "javac";
         cmd[1] = "I:\\My Documents\\My file\\CSM\\CSM00\\SmartQ\\src\\E.java";
         Process proc = rt.exec(cmd);
         cmd = new String[2];
         cmd[0] = "javac";
         cmd[1] = "I:\\My Documents\\My file\\CSM\\CSM00\\SmartQ\\src\\E";
         proc = rt.exec(cmd);
         //BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
         BufferedReader input = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
         while ((line = input.readLine()) != null) {
            System.out.println(line);
         input.close();
        catch (Exception err) {
         err.printStackTrace();
    public class E {
        public static void main(String[] args) {
            System.out.println("hello world!!!!");
    }Please help :)

    Javapedia: Classpath
    How Classes are Found
    Setting the class path (Windows)
    Setting the class path (Solaris/Linux)
    Understanding the Java ClassLoader
    java -cp .;<any other directories or jars> YourClassNameYou get a NoClassDefFoundError message because the JVM (Java Virtual Machine) can't find your class. The way to remedy this is to ensure that your class is included in the classpath. The example assumes that you are in the same directory as the class you're trying to run.
    javac -classpath .;<any additional jar files or directories> YourClassName.javaYou get a "cannot resolve symbol" message because the compiler can't find your class. The way to remedy this is to ensure that your class is included in the classpath. The example assumes that you are in the same directory as the class you're trying to run.

  • Runtime.exec(), linux and redirection

    Hi all,
    I need to exec an external command from java under linux, and have both the stderr and stdout of the command redirected to the
    stdout, so that I can capture them and keep them in synch in the java app. I've tried many combination, but I'm unable to make
    this work: only the standard output shows up. Note that I can make this work under windows.
    A java code example and a small C example to simulate the program to be invoked follows. Running the java program should show both the "messsage" and the "error" lines, but it shows only the "message" ones.
    Note that removing the apparently redoundant ">&1" doesn't solve the problem. I got a suggestion to modify the exec invocation into
    String[] cmd = { "/bin/sh", "-c", "./test1 >&1 2>&1" };
      Process p = Runtime.getRuntime().exec(cmd); but that didn't work eiter.
    Can anyone tell me where I'm wrong?
    Roberto
    ======================= class test.java ================================================
    import java.io.*;
    public class test {
      public static void main(String args[]) {
        new test();
      public test() {
        try {
          Process p = Runtime.getRuntime().exec("/bin/sh -c ./test1 >&1 2>&1")
          InputStream inStr = p.getInputStream();
          BufferedReader inBr = new BufferedReader(new InputStreamReader(inStr));
          String line;
          while((line = inBr.readLine()) != null) {
            System.out.println("line = "+line);
          try {
            p.waitFor();
          } catch(InterruptedException ex) {}
          System.out.println("process terminated with code = "+p.exitValue());
          inBr.close();
        }catch(IOException ex) {
          System.out.println("IOException : "+ex.getMessage ());
    }======================= end of class test.java ================================================
    ======================= test1 program ================================================
    #include <stdio.h>
    int main(int argc, char **argv) {
      int i;
      for(i=0; i<100; i++) {
        fprintf(stdout, "message %d\n", i);
        fprintf(stderr, "error %d\n", i);
    }======================= end of test1 program ================================================

    Redirection dosen't work with Runtime.exec(), it really dosen't have sense. Do the foolowing:
    String[] cmd = { "/bin/sh", "-c", "./test1" };
    Process p = Runtime.getRuntime().exec(cmd);
    OutputStream out = p.getOutputStream();
    //now wrte out to the file, formating as you want
    What is doene obove is execute your command, without redirection, and the obtaininh the output stream of the created process. This is "the place" where the process will write everithig it'll would write in the console if executed there.
    The handle the OutputStream as any other OutputStream, and write it to the HD or do whtever you want.
    Abraham.

  • Runtime.exec hangs even If I drain output.

    Hi Everyone,
    I'm trying to make a program that would give me access to a command line on a remote server. So what I'm trying to do is use Runtime.exec("cmd") to open a command line, then reading from it and printing to it normally.
    The problem is the same very common problem anyone using exec encounters: it hangs. The thing is, however, I do drain the input and error streams immediately, but it still hangs, and here's a curious thing:
    When I use a BufferedReader and use its readLine() method, it only manages to read the first two lines before it hangs, giving me an output such as this:
    +Microsoft Windows XP [Version 5.1.2600]+
    +(C) Copyright 1985-2001 Microsoft Corp.+
    Of course I placed the System.out.println inside the loop that reads lines, cause if I put it outside the loop, I don't get any output at all because the subprocess hangs before the loop is finished.
    Now if I don't use a buffer, and use the input's stream's read() method, it reads all the way through the output, but hangs at the end where it's supposed to read -1, and never reads it.
    I thought maybe I could bypass that, and break the loop at the last character in the output (the character '>'). Now while this works the first time, sending the output to the client like this:
    +Microsoft Windows XP [Version 5.1.2600]+
    +(C) Copyright 1985-2001 Microsoft Corp.+
    F:\eclipse workspace\RemCommand>
    However it doesn't work after that, when I try to type any command. I send my command to the subprocess normally using a PrintWriter, and then try to read the output, but that fails because apparently the subprocess is still stuck at the -1 from the previous read operation.
    I really don't know what the problem is, is it possible that the read possibly doesn't return -1 at all, maybe returns a different character to signify the end or something, and my loop keeps trying to read or what?
    I'm at my wits end.
    Any help?
    Thanks in advance.

    Here is the code again. Check the somehow improved detection of the default Windows prompt.
    Check the lines in comments that allow you to define your own, perhaps more reliable prompt.
    import java.io.*;
    import java.util.*;
    public class Cmd
      public static void main( String[] args ) throws Exception
        ProcessBuilder pb = new ProcessBuilder( "cmd" );
    //    Map<String, String> env = pb.environment();
    //    env.put( "PROMPT", ".,.,." );
        pb.redirectErrorStream( true );
        Process p = pb.start();
        InputStream is = p.getInputStream();
        OutputStream os = p.getOutputStream();
        PrintWriter pw = new PrintWriter( os, true );
        readToPrompt( is );
        pw.println( "dir" );
        readToPrompt( is );
        pw.println( "ipconfig" );
        readToPrompt( is );
        pw.println( "netstat" );
        readToPrompt( is );
      private static void readToPrompt( InputStream is ) throws IOException
        String s = "";
        for (;;)
          int i = is.read();
          if ( i < 0 )
            System.out.println();
            System.out.println( "EOF" );
            System.exit( 0 );
          s += new String( new byte[] { ( byte )i } ).charAt( 0 );
          if ( s.endsWith( "\r\n" ) )
            System.out.print( s );
            s = "";
    //      if ( s.equals( ".,.,." ) )
          if ( s.length() > 2 && s.charAt( 0 ) >= 'A' && s.charAt( 0 ) <= 'Z' && s.charAt( 1 ) == ':' && s.endsWith( ">" ) )
            System.out.print( s );
            break;
    }Edited by: baftos on Sep 10, 2008 11:27 AM

  • Runtime.exec() with get command output

    hi,
    How can i get output of command which i run with runtime.exec().
    p.e.:
    Process p;
    Runtime r = Runtime.getRuntime();
    p = r.exec("net use \\pc\dir pswd /user:username");
    if command was done succesfully that in cmd is return this:
    "The command completed successfully." I can get this text, but i dont know how.
    Plese help
    thank you
    Palo

    Look at the API for Process

  • Runtime.exec() process output

    I am having strange problems with the output from a program I am executing with Runtime.exec(). This program takes voice input, and generates text output on the commandline. For some reason, I do not see any of the output until the program exits, then everything is displayed. My code is below, any help would be greatly appreciated!
    Thanks,
    Deena
    import java.io.*;
    import java.util.*;
    //Reads and prints the output streams from an executing process
    class ProcessStream extends Thread{
         InputStream is;
         String type;
         ProcessStream(InputStream is, String type){
         this.is = is;
         this.type = type;     //type of output stream, e.g. stdout or stderr
         public void run(){
         try{
              BufferedReader br = new BufferedReader(new InputStreamReader(is));
              String line=null;
                   //read and display the output stream of an executing process
              while ((line = br.readLine()) != null){
              System.out.println(type + ">" + line);
         } catch (IOException ioe){
         System.err.println(ioe);
    //Interface to TalkBack.exe
    public class JTalkBack{
         public static void main(String[] args){
         try{
              String arg="TalkBack.exe -noTTS -noReplay";     //program to execute
              //arguments to program
              for(int i=0; i<args.length; i++){
                   arg+=" "+args;
              //execute the program and get an object representing the process
              Process p=Runtime.getRuntime().exec(arg);
              //create stream processors for stdout and stderr of the process
              ProcessStream error = new ProcessStream(p.getErrorStream(), "ERROR");
              ProcessStream output = new ProcessStream(p.getInputStream(), "OUTPUT");
              //start the stream processors
              error.start();
              output.start();
              //wait for the process to finish and get its exit value
              int exitVal = p.waitFor();
         System.out.println("ExitValue: " + exitVal);
         catch (Throwable t){
         System.err.println(t);

    I have something similar and it works. The only difference is that I:
    1. used a BufferedInputStream instead of the BufferedReader, which means bis.available() and bis.read(buffer) were used instead of .readLine(bis)
    2. Didn't print to stdout, but instead fired a proprietary MessageEvent with the string in it to all MessageListeners (good for use with java.util.logging)
    3. Didn't (yet) put the input streams in different threads.
    Maybe it is related to the fact that you are printing directly back to the System.out again? Does each process in Java get its very own standard out? I don't know.
    It's ugly and convoluted, but maybe a snippet of my code will help...
    (in run)
    Thread myThread = Thread.currentThread();
      try {
        proc = r.exec("my_secret_process.exe -arg arg");
        is = new BufferedInputStream(proc.getInputStream());
        while (thread == myThread) {
          int iRead = 0; //how many bytes did we read?
          //message stream check
          if(is.available() > 0) {
            iRead = is.read(buf);
            msg = "\n"+new String(buf, 0, iRead);
            this.fireMessageArrived(new MessageEvent(this, msg));
         } //end while
       } catch(Exception e) {
          System.out.println("Argh.  Barf.");
      Tarabyte :)

  • Runtime.exec() output

    I'm using Runtime.exec() to run a program from within my Java application, but I can't seem to get any of the output from it. I can get the output of some commands, like 'ls' using Process.getInputStream(). Other commands execute , but I don't catch their output. Why can I catch some output, but not other's?
    I'm using Linux, if that makes a difference
    Tyler Ryan

    Also, while playing around with things, I realized the
    process is running native to the directory that my
    program is in (makes sense, but I just hadn't thought
    about it). Is there a way to make the process run
    native to another directory?Do you mean have it start in a different directory than where your process started? Sure, look at the other exec() methods that take different parameters. A couple of them take a File parameter to tell it what directory to start in.

Maybe you are looking for

  • How to get different sum value by different types of record in sql server

    Hi,I have my query result like below AppID       LabType      DiaType      LabPrice    DiaPrice   1                 a                b               100          1000   1                 a                cc              100          1000   1         

  • Reduce font size in a document.

    Hello guys. I've a bit of a problem here. So I have this document downloaded from the internet and I have to print it out but the problem is that it's text size is way too large due to which it is spanning over about 275 pages. Is there any possible

  • My Environments are miss

    2 Days ago I wanted to use Chapel for a certain tune, Much to my dismay, I hand no enviro's. System Diagnostics wont even open. I tried uninstalling the driver, then reinstalling them, hoping that would work, it didn't I have a Compaq Presario 5wv252

  • My joikuspot

    hi, my joikuspot i still not getting detected. Everything's perfect. And my wifi is on. Its not just getting detected. I dont know where i did wrong in the settings. Please help.

  • Motion transparency problem

    I have searched on this (here and Motion forum), and RTFM-d, but nothing is solving my problem. I am using Motion v1.01 and FCP HD 4.5. I am working with regualar (not HD) PAL footage. I created a sequence in Motion using the template. I made sure it