Once you’ve installed QuickTime and QuickTime for Java, you have everything you need to start developing QTJ applications—no separate SDK is required.
You can begin by compiling a trivial application to check the QuickTime and QTJ versions, as shown in Example 1-3.
Example 1-3. Checking the version of QuickTime
package com.oreilly.qtjnotebook.ch01; import quicktime.QTSession; import quicktime.util.QTBuild; public class QTVersionCheck { public static void main (String[ ] args) { try { QTSession.open( ); System.out.println ("QT version: " + QTSession.getMajorVersion( ) + "." + QTSession.getMinorVersion( )); System.out.println ("QTJ version: " + QTBuild.getVersion( ) + "." + QTBuild.getSubVersion( )); QTSession.close( ); } catch (Exception e) { e.printStackTrace( ); } } }
The compilation is the tricky step here. If you do a straightforward
javac
, bad things happen:
cadamson% javac src/com/oreilly/qtjnotebook/ch01/QTVersionCheck.java src/com/oreilly/qtjnotebook/ch01/QTVersionCheck.java:3: package quicktime does not exist import quicktime.QTSession; ^ src/com/oreilly/qtjnotebook/ch01/QTVersionCheck.java:4: package quicktime.util does not exist import quicktime.util.QTBuild; ^ src/com/oreilly/qtjnotebook/ch01/QTVersionCheck.java:10: cannot resolve symbol symbol : variable QTSession location: class com.oreilly.qtjnotebook.ch01.QTVersionCheck QTSession.open( ); ^
Instead, you have to explicitly provide the path to QTJava.zip, which contains the QTJ classes. On the Mac OS X command line, you would do this as follows:
Note
Here, as in many examples, you should type the entire command on one line. It’s broken up in the text for printing purposes.
cadamson% javac -classpath /System/Library/Java/Extensions/QTJava.zip src/com/oreilly/qtjnotebook/ch01/QTVersionCheck.java
On Windows, the path to QTJava.zip would point to wherever the QuickTime installer put the file, which presumably means into your Java installation’s lib/ext:
C:\qtjtests\book stuff\code>javac -classpath "c:\Program Files\Java\j2re1.4.2\lib\ext\QTJava.zip" src\com\oreilly\qtjnotebook\ch01\QTVersionCheck.java
Once the code compiles, running it is a lot easier—you don’t need to explicitly put QTJava.zip in the runtime classpath to run a QTJ application. Just supply the class name to run, as the following output illustrates:
Note
Using the ant buildfile provided with the downloaded book code (and described in the Preface) makes compiling a lot easier!
cadamson% java -cp classes com.oreilly.qtjnotebook.ch01.QTVersionCheck QT version: 6.5 QTJ version: 6.1 cadamson%
As for what this trivial first application actually does, a
read-through of the main( )
method shows it doing
four things:
Opening the QuickTime session
Printing the QuickTime version by making calls to
quicktime.QTSession
Printing the QuickTime for Java version by making calls to
quicktime.util.QTBuild
Closing the QuickTime session
If any of these throws an exception, it’s caught and printed to standard-out.
...the mismatch between the version numbers? QuickTime and QuickTime for Java versions are somewhat independent, because not every QT update merits a QTJ update. Typically, you’ll see both roll out a major version at the same time, but then a number of QuickTime updates will be issued, usually bug-fix updates or minor feature releases, without any changes to QTJ.
Get QuickTime for Java: A Developer's Notebook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.