Wann ist Client plattformunabhängig?

Hey Leute,
was soll es denn heißen das man darauf achten soll das der Client plattformunabhängig ist? Soviel ich weiß ist Java ja plattformuanbhängig (und läuft auch unter Windows und Linux) :)

sry wenn die Frage zu doof ist.....
 

JStein52

Top Contributor
Trotzdem könntest du ja da drin plattformabhängige Konstrukte verwenden, z.B. Pfadangaben der Form "D:\MeineProjekte\*" oder du könntest externe Programme aufrufen die es nur auf Windows oder Linux gibt (z.B. cmd.exe)
 

Mülchmann

Mitglied
Hey Isabella,

Also gemeint ist damit, dass du einen Clienten hast, der wie der Name schon sagt plattformunabhängig ist.
Heißt also, dass du dieses dann halt auf verschiedenen Betriebssystemen laufen lassen kannst und es somit deine freie Entscheidung ist, welchen System du nutzen möchtest.
du kannst diesen Clienten also z.B. auf 2 Rechnern installieren, wobei der eine mit Windows und der andere mit Linux läuft. Die Funktionalität ist dabei bei beiden gewährleistet.

wäre es nicht so müsste man immer darauf achten, dass man dann auch das richtige Betriebssystem verwendet.


Gruß
Felix
 

Mülchmann

Mitglied
beim Programmieren wird das in der Hinsicht "geändert", dass du ( wie JStein52 schon sagte) auf andere Pfadangaben und Programme eingehen musst, jenachdem was du für Aufgaben bearbeiten sollst.

wichtiges Thema bei der plattformunabhängigkeit sind "Sockets"
hast dich da schon einmal eingelesen?

und wie sehen denn deine Aufgaben aus?
 

Manuel.R

Bekanntes Mitglied
Eine Plattform besteht mehr als nur das Betriebsystem darunter/dahinter. Hardware, Sprache, Zeichensatz und was nicht sonst noch alles.
"Write once run everywhere" zählt nicht immer
 

Manuel.R

Bekanntes Mitglied
Haha, ehrlich?

Auch wenn die Hardware von uns durch die JRE verborgen bleibt, muss man mit den Informationen, die uns das OS von der Hardware liefern kann, leben.

Stichwort: Zeitmessung

Computer-Systeme verfügen neben der physikalischen Uhr, die nur im Sekundentakt (1Hz) synchronisiert, eine logische Uhr. Betriebssysteme aktualisieren diese Uhr im Time Slice durch interrupts (musst du nachlesen). Die Aktualisierung der logischen Uhr variiert zwischen 10ms und 50ms, abhängig vom BETRIEBSSYSTEM!

Auch wenn du eine Anwendung in Java schreibst, heißt es nicht, dass überall die gleichen Ergebnisse passieren oder gezeigt werden.

Java-Byte-Code, der auf einer I586-Maschine läuft, muss auf einem ARM-System nicht funktionieren, auch wenn auf beiden ein JRE läuft.

Ganz unabhängig sind wir nicht von OS und Hardware.
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
Ja.

Computer-Systeme verfügen neben der physikalischen Uhr, die nur im Sekundentakt (1Hz) synchronisiert, eine logische Uhr. Betriebssysteme aktualisieren diese Uhr im Time Slice durch interrupts (musst du nachlesen). Die Aktualisierung der logischen Uhr variiert zwischen 10ms und 50ms, abhängig vom BETRIEBSSYSTEM!
In wie vielen Java-Programmen spielt die Aktualisierungsfrequenz der Uhr eine Rolle?
Die Ungenauigkeit steht übrigens in der Doku.

Java-Byte-Code, der auf einer I586-Maschine läuft, muss auf einem ARM-System nicht funktionieren, auch wenn auf beiden ein JRE läuft.
Wenn ich, schlicht wie ich bin, strikt nach Doku programmiere, wann hab ich damit Probleme? Hast du irgendein Beispiel?
 

Manuel.R

Bekanntes Mitglied
Glaub mir, es gibt viele Gründe....
https://dzone.com/articles/does-write-once-run-anwhere

Einer kann zum Beispiel der JIT-Compiler sein. Der Übersetzt den Byte-Code in native Maschinen-Sprache. Das kann gewollt sein oder auch nicht. Aber es führt dazu, dass man sich gedanken machen muss, um evaluieren, geht das überall durch oder nicht.
Und eine andere Frage an der Stelle kann sein: Was mache ich, wenn es ein JIT-Compiler gibt, wie vehält sich der Code dann.

Es gibt viele Artikel, die zeigen, dass das Konzept/Ziel eigentlich gescheitert ist.

Aber dennoch bin ich ein riesen Fan davon, zu sagen, dass es eigentlich überall (einer JRE) laufen "könnte". Die Anpassungen wären zum Teil nur marginal.

Ach Mensch.....

Von JavaEE-Entwicklung wollen wir erst gar nicht anfangen.....

Zum größten Teil kannst du es vergessen, dass eine Enterprise Anwendung, die vielleicht für den JBoss/wildfly entwickelt wurde auf einem IBM Websphere unfallfrei läuft.
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
Na in diesem Artikel werden zumindest keine wirklichen genannt...

Einer kann zum Beispiel der JIT-Compiler sein. Der Übersetzt den Byte-Code in native Maschinen-Sprache. Das kann gewollt sein oder auch nicht. Aber es führt dazu, dass man sich gedanken machen muss, um evaluieren, geht das überall durch oder nicht.
Und eine andere Frage an der Stelle kann sein: Was mache ich, wenn es ein JIT-Compiler gibt, wie vehält sich der Code dann.
Keine Ahnung was du da herbei fabulieren willst, aber der JIT-Compiler ist nun wirklich absolut nichts, über das man sich bezüglich Plattformunabhängigkeit Gedanken bei der Entwicklung machen müsste...
Falls ich da falsch liege: Wann hast du dir zum letzten Mal Gedanken gemacht, ob das mit dem JIT läuft, und wolltest es lieber ohne laufen lassen, und was war der Grund dafür?

Von JavaEE-Entwicklung wollen wir erst gar nicht anfangen.....

Zum größten Teil kannst du es vergessen, dass eine Enterprise Anwendung, die vielleicht für den JBoss/wildfly entwickelt wurde auf einem IBM Websphere unfallfrei läuft.
Das ist eher ein schönes Beispiel dafür, dass Plattformunabhängigkeit am Entwickler hängt.
Oder erwartest du wirklich, dass ein für eine bestimmte Plattform entwickeltes Programm immer noch Plattformunabhängig ist?
 

Manuel.R

Bekanntes Mitglied
Alleine die unterschiedlichen JVM-Implementierungen sagen schon alles zur Plattform-Unabhängigkeit. Es gibt die JRocket-JVM, Sun-JVM, IBM-JVM.
Fast überall läuft der Garbage-Collector anders. Nicht für jede Plattform ist die jeweilige JVM erhältlich.
 

Flown

Administrator
Mitarbeiter
In diesem Thread geht es um Plattformunabhängigkeit, die ein Entwickler beachten sollte. Wenn er Java verwendet, dann gibt es ein paar Dinge die eben vermieden werden sollten, wie z.B. absolute Pfadangaben.
Wenn man das beachtet hat, dann kann man den Spaß kompilieren und auf jeder x-beliebigen JVM laufen lassen. Das nennt sich dann Plattformunabhängigkeit, denn es ist egal worauf die JVM läuft.

Was du da herschwadronierst, macht überhaupt keinen Sinn. Denn es ist klar, dass die JVM nicht plattformunabhängig ist, aber das hat mit der Entwicklung überhaupt nichts zu tun.

JavaEE ist auch plattformunabhängig: Denn es ist egal, auf welchem JEE Application Server meine App laufen lasse, wenn ich mich an den Standard gehalten habe.
 

Flown

Administrator
Mitarbeiter
Alleine die unterschiedlichen JVM-Implementierungen sagen schon alles zur Plattform-Unabhängigkeit. Es gibt die JRocket-JVM, Sun-JVM, IBM-JVM.
Fast überall läuft der Garbage-Collector anders. Nicht für jede Plattform ist die jeweilige JVM erhältlich.
Interessiert den 0815 Entwickler überhaupt nicht! Wichtig ist nur wenn ich java MeineApp eingebe, läuft das Ding.
 

mrBrown

Super-Moderator
Mitarbeiter
Hast du jemals Java Benchmarks im Vorfeld vom JMH entwickelt?
Jetzt hast du einen speziellen Anwendungsfall gefunden, in dem Kenntnisse des JITs eine Rolle spielen. Wo ist jetzt der Zusammenhang zur Plattformunabhängigkeit?

Alleine die unterschiedlichen JVM-Implementierungen sagen schon alles zur Plattform-Unabhängigkeit. Es gibt die JRocket-JVM, Sun-JVM, IBM-JVM.
Fast überall läuft der Garbage-Collector anders. Nicht für jede Plattform ist die jeweilige JVM erhältlich.
Aber das Java-Programm läuft auf jeder JVM, wenn man sich an Standards hält. Völlig unabhängig von JVM, GC und Plattform.
 

Manuel.R

Bekanntes Mitglied
Okay, eins noch: Es kommt auf das Programm an! So hört sich das besser an. Wenn ich ein Programm entwickle für ein Datei-, Verwaltungs- und Berechtigungsystem, dann sollte ich mir schon Gedanken über die Plattform (Betriebssystem) machen. Ich weiß nicht wie das heute ist aber damals lagen einige Betriebsysteme weit auseinander, Stichwort Access Control Matrix.

Ich weiß, Anfänger-Themen.... aber WORA bzw. Plattformunabhängigkeit ist ein Mythos, der in der privaten Entwicklungswelt vielleicht stimmt aber zusammenfassend muss gesagt werden, dass es das nicht zu 100% gibt.

Da kann ich mich an einen s... Standard halten wie ich will. Und an dieser Stelle bildet die Plattform das Auschluss-Kriterium, nicht die JVM.

Will ich 1+1=2 rechnen dann läuft das überall, okay. Mit Zunahme der spezifischen Funktion der Anwendung fällt auch die Plattformunabhängigkeit.

Macht was ihr wollt mit der Aussage, das ist meine Meinung und kein "schwadronieren".
 

mrBrown

Super-Moderator
Mitarbeiter
Macht was ihr wollt mit der Aussage, das ist meine Meinung und kein "schwadronieren".
Wollen wir nicht statt über Meinung lieber über Fakten reden?

Und willst du nicht statt ständig neue Dinge in den Raum zu werfen, irgendwann mal auf eine der ganzen Antworten eingehen?
Ich hab extra zu so jedem deiner Punkte nach einem Beispiel gefragt...

Da kann ich mich an einen s... Standard halten wie ich will. Und an dieser Stelle bildet die Plattform das Auschluss-Kriterium, nicht die JVM.
Welche Teile der Plattform werden denn durch die JVM nicht so abstrahiert, dass sie Plattformspezifisch sind?

Will ich 1+1=2 rechnen dann läuft das überall, okay. Mit Zunahme der spezifischen Funktion der Anwendung fällt auch die Plattformunabhängigkeit.
Welche spezifischen Funktionen kann ich mit Java ohne(!) zusätzliche native Libs nutzen, die Plattformabhängig sind?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
I Logik Zahlungsprozess - Wann Bestellobjekt anlegen? Java Basics - Anfänger-Themen 2
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
berserkerdq2 Java streams, wann nutze ich ::, also 2x Doppelpuntk bei Streams? Java Basics - Anfänger-Themen 5
W Wann und warum hashcode und equals? Java Basics - Anfänger-Themen 14
W Wann Rückgabewerte 0, 1, -1? Java Basics - Anfänger-Themen 27
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
F Wann ist es eine Instanz und wann nicht? Java Basics - Anfänger-Themen 1
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
S Wann Methode abstract? Java Basics - Anfänger-Themen 10
S Wann buffer löschen? Java Basics - Anfänger-Themen 5
R Wie überprüfen wann der User online oder offline ist? Java Basics - Anfänger-Themen 5
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
M Best Practice Wann eine Methode schreiben ? Java Basics - Anfänger-Themen 14
K Warum funktioniert das und wann erden die Objektmethoden nun ausgeführt? Java Basics - Anfänger-Themen 7
IngoF Welches Event kommt wann? Java Basics - Anfänger-Themen 8
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
M Wann PATH und wann JAVA_HOME in Windows System 7 setzen? Java Basics - Anfänger-Themen 2
M Wann final verwenden? Java Basics - Anfänger-Themen 5
M Wann eine Wrapper Klasse verwenden und wann einen primitiven Datentypen? Java Basics - Anfänger-Themen 8
D Ab wann getter und setter Java Basics - Anfänger-Themen 2
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
M Wann statische Methoden/Attribute? Java Basics - Anfänger-Themen 2
vandread Java Wildcards - Wann super wann extends? Java Basics - Anfänger-Themen 2
K Wann Vererbung und wann Interface verwenden? Java Basics - Anfänger-Themen 12
D Wann genau nutze ich ein solches Interface? Java Basics - Anfänger-Themen 3
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
B Wann toString() überschreiben? Java Basics - Anfänger-Themen 21
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
P Threads Wann läuft es parallel ab ? Java Basics - Anfänger-Themen 4
C Variablen Wann werden Instanzvariablen initalisiert? Java Basics - Anfänger-Themen 10
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
T Ab wann ist es ein großes Projekt? Java Basics - Anfänger-Themen 35
N Bessere Performance durch final: wann denn überhaupt? Java Basics - Anfänger-Themen 28
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
W Wann nutze ich "import"? Java Basics - Anfänger-Themen 12
A junit test wann verwendet man "was"? Java Basics - Anfänger-Themen 4
H Wann ein Objekt der Programmklasse in main anlegen Java Basics - Anfänger-Themen 2
G Wann ist ein == Vergleich bei Gleitkommazahlen fahrlässig? Java Basics - Anfänger-Themen 8
T Wann for und wann while?? Java Basics - Anfänger-Themen 35
-horn- Wann wird alles NaN erzeugt? Java Basics - Anfänger-Themen 22
S Wann wird eine Klasse geladen? Java Basics - Anfänger-Themen 17
C this - wann verwende ich das? Java Basics - Anfänger-Themen 10
T Threads - Ab wann wirds Kritisch?! Java Basics - Anfänger-Themen 7
M Wann muss man eine Variable mit set-/get-Methoden in eine Bean schreiben? Java Basics - Anfänger-Themen 19
G field public/private wann Java Basics - Anfänger-Themen 11
GambaJo Ab wann neue Klasse erzeugen? Java Basics - Anfänger-Themen 2
G Wann Arrays, wann Collections? Java Basics - Anfänger-Themen 36
GambaJo Wann try.catch nutzen? Java Basics - Anfänger-Themen 11
B objekt wann als final deklarieren? Java Basics - Anfänger-Themen 2
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
Y Wann / Wozu inner class Java Basics - Anfänger-Themen 3
K StringBuilder notwendig ab wann? Java Basics - Anfänger-Themen 42
S wann static Funktionen wann nicht Java Basics - Anfänger-Themen 6
N Wann und wie oft finalize Methode verwenden( überschreiben ) Java Basics - Anfänger-Themen 6
Bernasconi Programmierstil / Wann eine neue Datei? Java Basics - Anfänger-Themen 5
M wann, welche schleife Java Basics - Anfänger-Themen 3
M Ab wann ist die Datei sichtbar? Java Basics - Anfänger-Themen 3
G Herausfinden, wann mehrere Threads abgeschlossen sind Java Basics - Anfänger-Themen 3
G Überprüfen wann ein Dokument abläuft? Java Basics - Anfänger-Themen 3
N SAX, StAX, JDOM oder DOM , ab wann welches für XML Java Basics - Anfänger-Themen 14
M Wann ist ein Programm beendet? Java Basics - Anfänger-Themen 6
G Wann am besten getSize() aufrufen? Java Basics - Anfänger-Themen 6
I Festellen wann Methode in anderer Klasse fertig ist Java Basics - Anfänger-Themen 5
M wann statische klassen? Java Basics - Anfänger-Themen 14
M Wann ist initialisieren sinnvoll? Java Basics - Anfänger-Themen 4
B Wann Comparator und wann Comparable Java Basics - Anfänger-Themen 6
R Wann benutzt man << oder >> ? Java Basics - Anfänger-Themen 2
G Klassen: Wann initialisiere ich wo meine Variabeln Java Basics - Anfänger-Themen 6
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
B Email Client in der eigenen Software einbauen Java Basics - Anfänger-Themen 3
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
E SocketServer/Client stürzt ab. Address already in use. Java Basics - Anfänger-Themen 2
E MCLauncher eigener Client workt nicht? Java Basics - Anfänger-Themen 4
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I Unique client information in WebApp Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben