Das mit den Bibliotheken ist nicht ganz richtig. Auch mit C++ kann man (wenn man sich an die Einschränkungen hält, die man dabei bekommt), Anwendungen entwickeln, die sich sowohl für Linux als auch für Windows oder andere Plattformen kompilieren lassen. Man denke beispielsweise an Gtk+ oder Qt. Java bringt den Vorteil mit sich, dass es nur einmal kompiliert wird, danach aber diese Binärversion der Anwendung auf so ziemlich allen erdenklichen Plattformen laufen kann.
Das liegt daran, dass Java nicht direkt vom Prozessor ausgeführt wird, sondern von einer Zwischenschicht, der virtuellen Maschine. Als "Nachteil" bekommt man dafür allerdings eine etwas langsamere Ausführung der Anwendungen, was aber in den meisten Einsatzgebieten von Java nicht auffallen wird.
Ein weiterer Vorteil von Java ist die leichtere Erlernbarkeit gegenüber C++.
Großer Nachteil von Java: man kann (noch) nicht auf Daten zugreifen, speichern oder versenden. Aber ich glaube das ist in Planung, um es wieder attraktiver zu machen, was halt das Aufgabenspezifische ausmacht.
Woher hast Du denn die Informationen, dass man mit Java nicht auf Daten und Dateien zugreifen kann, um diese zu speichern oder zu versenden?
Typische Einsatzgebiete von C oder C++ sind unter anderem hardwarenahe Anwendungen (wie z.B. 3D-Spiele), Anwendungen und Bibliotheken, die schnell ausgeführt werden müssen (wie z.B. Steuerelemente unter Windows) und andere Dinge.
Java ist im Serverbereich eher zu finden als C++, was nicht zuletzt daran liegt, dass die J2EE-Technologie sich sehr gut für mächtige Webanwendungen eignet. Mit AWT, Swing und SWT oder auch Gtk kann Java für Desktop-Anwendungen genauso genutzt werden, wie andere Sprachen, nur mit dem Vorteil, dass die daraus resultierenden Ergebnisse unabhängig vom Betriebssystem laufen. Und wie schon gesagt: Java ist viel einfacher zu lernen.
PS: Radhad, halte Dich im Bezug auf Deine Rechtschreibung bitte an unsere Netiquette.