The UCSD P-System was an early attempt at platform independent computing that was launched in the late 1970s. Much like Java the idea was to provide an exact specification describing an imaginary computer architecture, and then write a small bit of code to emulate that architecture on each target machine. The idea being that application programs will be written once, compiled for the P-System, and then can be executed on any machine for which a P-System emulator has been written.

The P-System consisted of the emulator to emulate the P-Machine (a Virtual Machine in native code), a small operating system written for the P-Machine (in P-Code), and a couple of compilers (usually Pascal, and an assembler for P-Code). The P-System later became the template for Borland's Turbo Pascal and was one of the first high level languages to be widely used on microcomputers (along with BASIC).

The P-System was available on a variety of platforms from the humble 8-bit microcomputers to the old minicomputers. I know it was ported to at least these platforms, if you know of more, let me know and I'll add them:

Alas, it fell to the wayside over time, partly because it was slow, and partly because as the 80x86 based microcomputers came to be in the majority and the PC world became more homogenous it became easier to write everyhing in C for the majority platform and let the appeal of true platform independance fall to the wayside.