javaclass

Changeset

149:cd2ca8849c5a
2005-01-23 Paul Boddie raw files shortlog changelog graph Added a note about the Java API implementation.
docs/index.html (file)
     1.1 --- a/docs/index.html	Sun Jan 23 01:19:42 2005 +0100
     1.2 +++ b/docs/index.html	Sun Jan 23 01:19:53 2005 +0100
     1.3 @@ -28,7 +28,7 @@
     1.4  
     1.5  <p>You can run Java classes by finding one with a main method and executing
     1.6  it. Here's a comparison of a freshly prepared Java class being run in Python
     1.7 -and in a Java virtual machine:</p>
     1.8 +and in a Java virtual machine respectively:</p>
     1.9  
    1.10  <p class="prompt">cd tests/</p>
    1.11  
    1.12 @@ -141,7 +141,7 @@
    1.13      transforming it, optimising it, and so on. (Instead, there's been more
    1.14      emphasis on lots of runtime baggage for things which could be done by
    1.15      analysis of the code with modified bytecode being produced as a result,
    1.16 -    and let's not get started on some of the syntactical enhancements.)
    1.17 +    and let's not get started on some of the syntax enhancements!)
    1.18      Consequently, stability might be an issue for some configurations,
    1.19      especially since CPython doesn't fail particularly graciously with badly
    1.20      behaved bytecode.</li>
    1.21 @@ -192,6 +192,22 @@
    1.22      several places on the PYTHONPATH, and this is something that generally
    1.23      isn't allowed/supported with the classic Python module import
    1.24    mechanisms.</li>
    1.25 +  <li>Most Java programs need standard Java library (also known as the Java
    1.26 +    API) classes; indeed, with <code>java.lang.String</code> and seemingly
    1.27 +    <code>java.lang.StringBuffer</code> required just for the usage of
    1.28 +    strings, and with the classic <code>main</code> method having
    1.29 +    <code>String[]</code> in its signature, some kind of library
    1.30 +    implementation is obviously necessary. Whilst importing everything from
    1.31 +    the .jar files bundled with Sun's JRE might be tempting, there may be a
    1.32 +    certain amount of native calling going on in secret which would defeat
    1.33 +    this approach, and anyone seriously interested in running Java code in
    1.34 +    Python should really want to steer clear of such proprietary dependencies
    1.35 +    anyway. It could be possible to wrap and make use of GNU Classpath or
    1.36 +    some other open source Java API implementation, but the cleanest (but not
    1.37 +    necessarily the least time-consuming) approach is surely to implement the
    1.38 +    standard API classes in Python, and a package called <code>java</code> is
    1.39 +    included which contains some fairly quick and dirty implementations to
    1.40 +    get things working.</li>
    1.41  </ul>
    1.42  
    1.43  <h2>Suggestions for Python Improvements</h2>