On 12/02/2010 08:21 PM, Arne Vajhøj wrote:
> On 02-12-2010 16:39, Roedy Green wrote:
>> On 2 Dec 2010 06:31:13 GMT, firstname.lastname@example.org (Stefan Ram) wrote,
>> quoted or indirectly quoted someone who said :
>>> - When a *.java file is »opened« in the explorer
>>> it is compiled to a *.class file, which is kept
>>> in memory and then treated as described above.
>> That would require distributing Javac in the JRE.
> Not necessarily - the feature could require JDK.
A good point made somewhere upthread, apologies for deliberate laziness in
researching by whom: The Java platform already provides packaging systems to
run under various JRE configurations (SE, EE, ...). Windows and Unices can
run JAR files as executables if configured similarly to how Excel spreadsheets
automatically bring up their commander. JARs have mechanisms to deliver all
needed dependencies, although setup is required in many scenarios. (For what
programs is that not true?) For complex installations there are installer
programs. Java even provides Java WebStart.
The segregation of the runtime from the JDK was deliberate to facilitate
widespread deployment. Java has enough handicaps in that area as it is, some
might say. It isn't all that outré really. Java certainly didn't invent the
notion of a separate runtime engine.
Often Java's delivery and deployment mechanisms are primitive and clunky.
OTOH they do run under unprivileged logins just about anywhere. "jar" and its
kin suffice to create self-contained packages. The packaging and deployment
primitives can in turn be packaged and deployed more elegantly, as they are
for some well-known Java products already. It ain't perfect, but the
compromises aren't egregious and can be ameliorated.