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.
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.
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.
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?
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.
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 ...