[lsb-discuss] Java

Joseph Kowalski jek3 at sun.com
Tue Jun 3 19:35:51 PDT 2008



I've tried to summarize what I think we have decided, and it just a matter
of crossing the "t's" and dotting the "i's".  (But there are a significant
number of those to do.)

Perhaps this should replace quite a bit of what is currently on the wiki?

Of course, respond as appropriate,

- jek3




Proposed Java addition to the LSB
=================================

1)      The Java VM is part of the platform/distro.  The implication is
        that the Java VM does not have to be LSB compliant itself.

        It may be a useful marketing tool if a Java VM is otherwise LSB
        compliant itself, but that is another project, which is being
        pursued.

2)      Specification of the Java Application Environment (JAE):

        The Platform Specification consists of:

            1. Language Specification
               The Java Language Specification, Third Edition
            2. Virtual Machine Specification
               The JavaVirtual Machine Specification, Third Edition
            3. API Specification - JavaSE javadoc
            4. Java Native Interface Specification
            >>> ------------- snip ------------- <<<
            5. JVM Tool Interface - Version 1.1
            6. Java Debug Wire Protocol
            7. Extension Mechanism Architecture

        1 through 4 are of interest to the LSB. Numbers 5 and 6 are
        for general development. Number 7 is for Java VM suppliers.

        (Number 7 is not what you probably think it is.  It is a way to
        add standard classes (defined by the JCP) that are extensions
        to the core specification. Examples are JMF and JAI. It may
        be useful to define these extensions to be part of the LSB,
        but one thing at a time.)

3)      In order to call something Java, it must pass the JCK (Java
        Conformance Kit).  In the world of open source, this must be
        easily available.  It is, through a very liberal license.
4)      The CLIs to be included into the LSB from the JRE are:

                java(1)
                javaws(1)
                jcontrol(1)

        There are publicly available manual pages for these.  We should
        prune these to eliminate the flags which are either only appropriate
        for developers, are potentially non-standard or are simply too
        baroque.

        One may note that there is also the Java plug-in.  That strictly
        interacts with the browser and should not be part of the LSB.

5)    Its not clear that this belongs in the LSB, but it seems useful
       to allow the installation of additional Java VM implementations
        and for them to "play nice" with each other.  (This is vaguely
        described in the man page java(1).  I have a detailed specification
        (which I wrote) but I need to get it vetted so that it is public
        (and easy task, but it still needs to be done.))

       That installation point is:

           /usr/lib/java

       (Grown,...)

       The entries need to be of the form:

            [jre|jdk]<version>

        Example: jre1.6.0_06

        Note that Sun's RPMs and Ubuntu's integration do not comply with
        these.

6)    Co-residency of 32/64 bit Java VMs is an interesting issue, but
      beyond the scope of the LSB.

Open Issues:

1)    Availability of an appropriate Java Environment for all architectures
       for which an LSB specification is available.  (I think this is just
        an action item for the distros which produce these less common
        architectures, but others may feel differently.)

2)    Availability (from Sun) of javaws for 64-bit Linux (any architecture).






More information about the lsb-discuss mailing list