Q&A on Blu-ray Disc Application Development with Java ME

By Bruce Hopkins

Java technology is an integral part of the new high-definition video standard: the Blu-ray Disc standard. In the past year, Sun published a two-part series to lower the learning curve for Java developers who want to get started using the Blu-ray Disc for Java (BD-J) platform.

In Part 1: Creating Your First Application, I provided an introduction to the BD-J platform and provided information on the various APIs that are required by BD-J, including GEM/MHP (Globally Executable Multi Home Platform) and Java TV. In Part 2: Responding to User Input, I showed you how to use the Java ME SDK to create an application that can respond to the user via the remote.

Among the thousands of readers of this series, several readers submitted the following questions in the Comments section of the articles.

Question: Is it really a good idea to use org.havi and org.dvb classes? Will this work on all Blu-ray players?

Answer: Yes, it is perfectly fine to use any of the use org.havi and org.dvb classes that are a part of the BD-J specification. Specifically, those classes originate from the GEM/MHP layer of the BD-J software stack, and all Blu-ray players must support them. Please refer to Part 1, where I provide a complete list of all the Java packages that must be supported in all Blu-ray players on the market (including PC-based Blu-ray players).

Question: I have following the problem when I compile the source file:

Fatal Error: Unable to find package java.lang in classpath or bootclasspath
Details message: target="${javac.target}"
deprecation="${javac.deprecation}" optimize="${javac.optimize}"
srcdir="${buildsystem.baton}" destdir="${build.classes.dir}"

Answer: If you’re using the Java ME SDK 3.0 platform and you’re having a compilation error, then please refer to the instructions provided in Part 2: I list step-by-step instructions on how to set up the Java ME SDK 3.0 to compile BD-J applications. Note that the Java ME SDK 3.0 cannot compile BD-J applications in its default state after you install the SDK. It must be configured with the BD-J libraries to compile BD-J applications.

Final Thoughts

Thanks to all the readers who took the time to provide feedback to this article series! Your input, thoughts, questions, and ideas are always welcome and appreciated.

It is great initiative to help techie people around the globe.i really apreciate it.

I'm working on .Net technlogy but i do have a simple question regarding java,i hope you will be able to reply it at ease.

I wanted a java program should accept integers from command line directly without conversion from string to integer. is it possible.if so please guide with example.
Thanks and regards
Firdous A Shah

Posted by Firdous A Shah on April 02, 2009 at 09:51 PM PDT #

Thanks for your feedback. For your question regarding integers from the command line, may I suggest you post the same question on the Java forum? You will then have exposure to many of your fellow developers/programmers. The answer may already be answered, in fact. You might start with the Java Essentials category at <http://forums.sun.com/category.jspa?categoryID=5>.

Posted by Christine Dorffi on April 03, 2009 at 04:58 AM PDT #

I'm not a technical person but I have a question about what the technology (BD-J) is capable of doing.

With this technology can i shoot a film that has different endings (either store the endings on the disk or download the ending as desired) thus allowing the user to select one... on-demand conclusion?

Of course, I'm expecting the selected ending will fit seamlessly into the movie plot etc.

Posted by Joe Tinnerello on May 07, 2009 at 12:56 PM PDT #

how do i use html using the program?

Posted by elda gecain on May 29, 2009 at 10:00 PM PDT #

Is there a way I can run a sample application on my PS3 without buying a BR writer? Can the code be loaded off HDD, or a dvd disk?

Posted by anm anm on June 04, 2009 at 12:15 AM PDT #


Yes, Blu-ray technology and the BD-J API will allow you to film various endings to a movie on the same disc, and allow the user to select the desired ending.



Posted by Bruce Hopkins on June 07, 2009 at 02:41 PM PDT #


I've heard of people trying to get BD-J applications working on the PS3 without burning their applications to Blu-ray discs, but I can't vouch for the success rate of such an endeavor.

Posted by Bruce Hopkins on June 07, 2009 at 02:59 PM PDT #

What is a BD-J stubs?
How do I get it from Blu-ray Disc Association and What do I do with it?

Posted by Simon on January 31, 2010 at 04:38 PM PST #

hi.. great work. many people will know what is the skeleton of Xlet through this example. Thanks a lot. I have also learn from this webpage only. I'm having a doubt.
I'm developing an application. For that i have to play video streams from the server. For that i'm having two classes. I have played the video using a container. And i have added that in the scene. I have implemented that container with keylistener. But i was not able to catch any event while the video is playing.. CAN YOU PLEASE HELP ME OUT IN THIS. i am trying this for a long time. I'LL BE VERY THANKFUL IF I GET ANY HELP... thanks a lot in advance... :)

Posted by lingesh on July 09, 2010 at 11:25 PM PDT #

I have heard that the inner class which extends a container cannot be implement a keylistener. Is it true? Then how do i get the keyevent while the video is playing using the container. Can we pass the key events to this container??

Pls help me. I'm in need of this.. And sorry for my poor english..

Thanks a lot..

Posted by lingesh on July 09, 2010 at 11:40 PM PDT #


I have just read your article on blu-ray development using a PS3. However I have a question that I cannot seem to find the answer to anywhere on the internet. How do I actually get the compiled java file onto the PS3? Memory stick? Network? And then how do I actually run it?


Posted by Lloyd on December 26, 2010 at 02:02 PM PST #

Post a Comment:
  • HTML Syntax: NOT allowed

Tips for developers who use Java technologies (Java SE, Java ME, JavaFX) for mobile and embedded devices.


« July 2016