# Grundsätzliches Verständnisproblem: Java 32/64-bit; Windows 7/8, 32/64-bit-System



## FrankR2 (7. Okt 2014)

Hallo, ich habe ein grundsätzliches Verständnisproblem.

Es gibt 32- und 64-bit-Rechner und auch Java offenbar als 32-bit und als 64-bit-Version.
Windows 7 ist aber manchmal 32-bit und manchmal 64-bit. Windows 8 ist offenbar immer 64-bit.

Ich nutze ein Programm, das in Java programmiert ist und sowohl auf Windows 7 mit 32-bit als auch auf Windows 7 mit 64-bit läuft, aber nicht unter Windows 8.

Kann mir jemand bitte diese grundsätzlichen Zusammenhänge zwischen 32/64-bit, Java-Versionen und Win 7/8 erläutern.

Vielen Dank.


----------



## Kaibear (7. Okt 2014)

Grundsätzlich sagt die Bitzahl nur, wie viel Bit der Prozessor gleichzeitig verarbeiten kann. Das müsste aber abwärtskompatibel funktionieren. Sprich: 64 Bit-Betriebssystem kann auch ohne Probleme die 32 Bit-Sachen ausführen - is halt nur nich klug, da es halt mehr verarbeiten könnte. 

Also an den Bit liegt es nicht.

Dass dein Java-Tool nicht unter Win8 funktioniert kann eine Vielzahl anderer Gründe haben. Falsche Java VM installiert (oder gar nicht installiert), Rechtesituation an deinem Win8 PC etc.


----------



## nvidia (7. Okt 2014)

Da gibt es nicht viel zu erklären

32-Bit OS -> 32Bit JVM
64-Bit OS -> 64Bit JVM o. 32Bit JVM

Der nach Bytecode kompilierte Javaquellcode läuft sowohl auf einer 32-Bit JVM als auch einer 64-Bit JVM. Wichtig ist  das der Bytecode welcher mit einer neueren Version z.B. 8 erzeugt wurde nicht auf einer JVM läuft die nur Bytecode für Version 7 versteht. Sonst kann es nur noch Probleme geben wenn das Programm auf JNI, also die Verwendung von systemspezifischen Bibliotheken (Dll's usw.) angewiesen ist.


----------



## Joose (7. Okt 2014)

Nein dein Java Programm kann unter 64bit ebenso laufen wie unter 32bit. Hier gibt es keine Unterscheidung bei Java Programmen.
Es gibt aber sehr wohl eine Unterscheidung bei der JVM, diese steht in 32bit und 64bit zur Verfügung.

Du sagst dein Programm läuft auf Windows 7 aber nicht auf Windows 8. Was bekommst du für eine Fehlermeldung beim Programmstart? 
Hast du die richtigen/passenden Java Versionen installiert?


----------



## FrankR2 (8. Okt 2014)

In meiner Systemsteuerung unter Win7 stehen folgende Programme:
Java 7 Update 51 (64-bit) und
Java 7 Update 67

Ich vermute, dass das Update 67 die 32-bit-Version betrifft.
Und möglicherweise ist das System so eingestellt, dass es auf diese 32-bit-Version zugreift.
Denn wenn ich die 64-bit-Programmvariante starte, passiert überhaupt nichts.

Wenn ich allerdings bei der Eingabeaufforderung "java -version" abfrage, erhalte ich die Meldung:
_"java version "1.7.0_51
SE Runtime Environment build 1.7.0_51-b13
Java HotSpot 64-Bit Server VM build 24.51-b03, mixed mode"_

Das sieht danach aus, als wenn die 64-bit-Version aktiv wäre.

Passt irgendwie nicht zusammen.

Auf diesen Link wurde ich per Email hingewiesen (Java-Umgebungsvariable einstellen unter Win7):
http://www.java-forum.org/einfuehru...umgebungsvariable-einstellen-windows-7-a.html


----------



## Ruzmanz (8. Okt 2014)

Kann gut sein, dass deine JAR-Datei inkompatibel mit deiner Update-Version der JRE ist.

-> Konsole starten (Windows-Taste + "CMD" eintippen)
-> Mit "cd C:\MeineApp" ins Verzeichnis wechseln
-> Mit "java -jar MyJAR.jar" die JAR-Datei ausführen
... dann erscheint eine Exception ...


----------

