Java

Java Logo
Type Object-oriented programming language
Paradigm Multi-paradigm: generic, object-oriented (class-based), functional, imperative, reflective, concurrent
Designed by James Gosling
Developer Oracle Corporation (current), Sun Microsystems (original)
First appeared May 23, 1995
Typing discipline Static, strong, safe, nominative, manifest
Memory management Automatic garbage collection
Open Format? Yes (Java 1.3)
Free Format? Yes (Java 1.3)
Filename extensions .java .class .jar
Magic Number ?

    Java is a high-level, class-based, object-oriented programming language originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) based on an earlier project to develop a programming language for embedded cable television systems, and released in 1995 as a core component of Sun Microsystems' Java platform.

There are 3 billion devices that run Java, mostly phones, Blu-ray players, servers, and TV sets.

      The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them. Java applications are typically compiled to bytecode (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture.

Java is a general-purpose, concurrent, class-based, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. The JAR format (zipped Java classes) is used by Java in addition to .jar and .class files.

BD-J note: Blu-ray Disc Java (BD-J) is based on Java ME and is locked to the Java 1.3 language level and class-file format. Newer versions of Java are not compatible with BD-J players.

Want to learn Java 1.3 and BD-J programming?
If you wish to learn Java 1.3 and the programming documentation for Blu-ray, visit our dedicated documentation site:
→ code.blu-ray.org.uk

Example Code from Blu-play.com by Mistalu
package com.bluplay.helloworld;

public class HelloWorld extends java.awt.Container implements javax.tv.xlet.Xlet {

  private org.havi.ui.HScene scene;
  private java.awt.Font font;

  public void initXlet(javax.tv.xlet.XletContext context) {
    setSize(1280, 720);
    scene = org.havi.ui.HSceneFactory.getInstance().getDefaultHScene();
    scene.add(this);
    scene.validate();
  }

  public void startXlet() {
    setVisible(true);
    scene.setVisible(true);
    repaint();
  }

  public void pauseXlet() {
    setVisible(false);
  }

  public void destroyXlet(boolean unconditional) {
    scene.remove(this);
    scene = null;
  }

  public void paint(java.awt.Graphics g) {
    g.setColor(new java.awt.Color(0x000000));
    g.fillRect(0, 0, getWidth(), getHeight());
    g.setColor(new java.awt.Color(0xffffff));
    if (font == null) {
      font = new java.awt.Font(null, java.awt.Font.PLAIN, 30);
      g.setFont(font);
    }
    g.drawString("Hello World!", 50, 50);
  }
}

 

Java 1.3 & BD-J

Learning Version 1.3 of the Java programming language is necessary for BD-J development. BD-J uses the Java ME platform (Personal Basis Profile of the Connected Device Configuration) and is limited to the Java 1.3 language level and class-file format.

This means:

  • Core Java syntax and object-oriented programming from the late 90s / early 2000s era.
  • No modern features are allowed (no enums, generics, lambdas, var, try-with-resources, etc.).
  • BD-J applications are Xlets (not regular programs with a main method).
  • Graphics and UI are done with HAVi (org.havi.ui.*) and Blu-ray packages (org.bluray.*).

For full tutorials, language details, and API documentation, see the dedicated site:
→ code.blu-ray.org.uk

Java can feel moderately challenging as a first programming language for complete beginners due to its strict syntax and object-oriented focus, but with patience and good resources, most people start building simple programs comfortably within 3–6 months.

Book Recommendations

Since BD-J sticks to Java 1.3 fundamentals (no post-1.3 features), focus on late-90s/early-2000s books that teach clean core Java. These match the language level perfectly and help with OOP, threads, and basics needed for Xlets.


Book Description ISBN
Beginning Java 2 - JDK 1.3 Edition by Ivor Horton (2000)

The best pure-language tutorial for exactly JDK 1.3. Comprehensive, beginner-to-intermediate, with exercises—ideal before BD-J specifics.
1-86100-366-8 / 978-1861003669

Java in a Nutshell: A Desktop Quick Reference (1st edition, 1996 by David Flanagan, or 2nd/3rd editions ~1997–2000)

Classic O'Reilly concise reference. Great for quick lookups on syntax/APIs without modern fluff. 90s vibe, fully compatible.

1-56592-183-6

Learning Java (early editions ~2000–2002 by Patrick Niemeyer & Jonathan Knudsen, e.g. 2nd ed.)

O'Reilly tutorial-style intro with practical examples; covers Java 2 era but stays close to 1.3.

0-596-00285-8
Java Network Programming, 2nd Edition by Elliotte Rusty Harold, O'Reilly (2000). Relevant for advanced BD-J networking (java.net APIs). Optional. 1-56592-870-9 / 978-1565928701

Programming HD DVD and Blu-ray Disc: The HD Cookbook by Michael Zink, Philip C. Starner, and Bill Foote (2008)

The official companion to the open-source HDCookbook project. Covers BD-J Xlets, HAVi UI, GRIN, media playback, disc structure and tools. Closest thing to a comprehensive BD-J guide.

See Errata for corrections.

978-0071496704


References


Author(s) : Æ Firestone - Last Updated: 11/09/2026

on Tuesday, March 19, 2024 | , | A comment?
0 responses to “Java”

Leave a Reply

Popular Pages

Cool Blue Outer Glow Pointer