Die Java-Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java-Technologie. Der Kern der Java-Plattform ist die Java-Laufzeitumgebung (englisch Java Runtime Environment).

Durch die Java-Plattform werden Programme weitgehend unabhängig vom darunter liegenden Betriebssystem ausgeführt. Sie definiert die Anwendungsprogrammierschnittstellen (APIs) eindeutig und maschinenunabhängig.
Programme für die Java-Plattform werden in der Regel mit Hilfe der Programmiersprache Java erstellt. Die Verwendung anderer Programmiersprachen ist möglich, z. B. Scala oder Groovy.
Write Once, Run Anywhere
Java funktioniert nach dem Konzept Write Once, Run Anywhere (deutsch: „Einmal schreiben, überall ausführen“). Das bedeutet, dass man ein Programm, das in Java programmiert wurde, theoretisch nur einmal zu kompilieren braucht und es auf allen anderen Systemen läuft, die eine Java-Laufzeitumgebung (Java Runtime Environment bzw. JRE) besitzen. Dies wird dadurch erreicht, dass Java zunächst in Bytecode kompiliert wird, dieser wird von der JRE beim Starten des Programms erst in die Maschinensprache kompiliert (Man spricht hier von einem JIT-Compiler). In der Praxis ist diese Plattformunabhängigkeit allerdings nicht immer gegeben.
Der Bytecode funktioniert also als Zwischencode, zwischen Programmiersprache und Maschinensprache. So ist das Javaprogramm nicht an eine bestimmte Maschine gebunden. Das Java Runtime Environment existiert für weit verbreitete Betriebssysteme wie Microsoft Windows, Linux, Solaris, Mac OS X, AIX und viele andere. Daneben gibt es eine JRE nicht nur für Server- und Desktop-Betriebssysteme, sondern auch für viele eingebettete Systeme wie Mobiltelefone, PDAs, sowie Smartcards und andere technische Plattformen, wie Auto und TV. Die Plattformunabhängigkeit endet jedoch für solche Systeme, für die keine Java Virtual Machine existiert, zumeist ältere oder sehr exotische Systeme.
Es gibt aber auch Compiler, die Java-Quellcode direkt in Maschinencode übersetzen (Java Native Compiler).
Wer von „Plattformunabhängigkeit“ und „Java“ spricht, muss zwischen der Java-VM selbst und den Programmen, die in Java geschrieben sind, unterscheiden. Die Java-VM, die die eigentliche Plattformunabhängigkeit ermöglicht, ist selbst plattformabhängig, da sie auf ein bestimmtes Betriebssystem und eine Rechnerarchitektur angepasst ist. Zum Beispiel ist Suns Java-VM für Windows in C++ geschrieben und durch C++ kompiliert. Andere Komponenten des JDKs wie zum Beispiel der Java-Compiler, sind in purem Java geschrieben und damit wieder plattformunabhängig, das heißt, der Bytecode des Compilers ist auf unterschiedlichen Plattformen identisch. Das Gleiche gilt für den Bytecode von Programmen, die in Java geschrieben und durch einen Java-Compiler kompiliert wurden.