# 32 bit 64 bit start up problem



## quakemarine1 (29. Jul 2009)

hallo

ich habe eine in Java gebaute .exe die nicht mit java 64bit läuft
hat anwender 64bit installiert und installiert nachträglich 32bit , wird weiterhin versucht die .exe mit der 64bit java version zu starten

wie kann ich erzwingen 32 bit zu verwenden ?
aktuell muss jeder anwender die 64bit java deinstallen damit es lubbt
geht das eleganter ?

andre


----------



## Der Müde Joe (29. Jul 2009)

>ich habe eine in Java gebaute .exe die nicht mit java 64bit läuft

bei mir bauts immer .class Dateien. Oder gelegentlich mal eine Jar.
Erklär das mal?

>geht das eleganter ?

Bau keine Exe..wie auch immer.


----------



## quakemarine1 (29. Jul 2009)

die exe is mit launch4j aus der jar generiert.

aber das selbe problem besteht auch mit der .jar


----------



## Der Müde Joe (29. Jul 2009)

Worin liegt das Problem bei der 64 Bit JVM Version? Also im Start up. Fliegt eine Exception (welche?) oder willst du einfach 32 Bit oder ? (ok hab kein 64 Bit System und benutze Linux)


----------



## quakemarine1 (29. Jul 2009)

ich benutze als oberflaeche swt, und habe nur die 32bit swt Jar mit eingebunden, darum wuerde ich gerne auch nur die 32bit java version starten


----------



## Speedi (29. Jul 2009)

Ich dachte eigentlich bisher, dass es kein Unterschied zwischen den class-Files gibt. Egal ob 32bit oder 64bit. Den Unterschied macht doch nur die Runtime, oder?

SWT benutzt native Bibliotheken, die natürlich entsprechend kompiliert wurden. Ich weiß nicht genau, aber vielleicht kann eine 64Bit Runtime einfach keine 32Bit nativ-Dateien aufrufen. Wie wärs einfach eine zweite Version auszuliefern, bei der du die nativen Libs einfach durch die entsprechenden 64er Versionen ersetzt?


----------



## tuxedo (31. Jul 2009)

Naja. Ein ähnliches Problem hatte ich auch. Zwar nicht mit nativen Bibliotheken, aber mit dem "OS-Befehl per Java ausführen via Runtime".

Wenn das OS 64bit ist, Java aber nur 32bit, dann schlug das ausführen immer fehl.

Hab also die Erfahrung gemacht dass die JVM zum OS passen sollte (nur um sicher zu gehen). Wenn OS == 64bit, dann Java möglichst auch 64bit.

Bei nativen Biblotheken: Nicht umsonst kann man beim Bauen mit angeben für welche Platform (X86 oder amd64) man bauen will. Und da kommt das OS eben wieder ins Spiel. 

Einem 64bit Vista sollte man eben am besten eine 64bit JVM füttern, und da dann auch ein Programm, welches 64bit DLLs nutzt. Alles andere _kann_, wie man in diesem Thread unschwer erkennt, zu ungewünschten Effekten führen.

- Alex


----------

