Java is an executable format.
The kernel has _many_ hardcoded paths. The obvious two are
/bin/sh and /sbin/init. The kernel searches many hardcoded
paths to find init, and it even writes some sort of quota
or accounting file. The kernel must set the policy which
is required to define Linux. Other things may be left to
the local system administrator. If the kernel did not set
policy, it would require options to specify many things.
You'd need something like this in /etc/lilo.conf:
append = "init=/sbin/init sh=/bin/sh"
If I put some shell commands in a file without the "#!/bin/sh"
magic, the kernel uses /bin/sh to interpret the script.
Yes, the kernel _does_ set policy. A little bit is good.
Now, if the kernel kept root from reading people's mail...
Java may become a way to distribute programs for unix, at least
the programs that are not performance critical. Someone is planning
to make the Java VM a target for gcc even, so you can compile C
something like this: "gcc -b Java-VM -o hello hello.c".