Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird

Lars789852

Aktives Mitglied
Hallo,

ich habe eine Frage, das ist nicht wirklich ein Problem, aber es wäre besser, wenn ich das in mein Programm einbaue. Ich habe schon google und die Forensuche gefragt...

Ich habe eine dll, die ich mit System.loadLibrary lade. Das Problem dabei ist, dass die dll nur 32 bit ist. Also kein Problem, einfach in der IDE die 32bit jre einstellen. Jetzt will ich mein Programm aber auch irgendwann mal verschicken und ich weiß nicht, ob der Nutzer das Programm mit der 32bit oder 64bit Version vom jre ausführt. Also würde ich das gerne prüfen, bevor ich die dll lade. Ich hab schon bei den System Properties geguckt und nichts Passendes gefunden. Ich meine, ich könnte auch gleich den java.lang.UnsatisfiedLinkError abfangen, wenn die dll geladen wird und entsprechend handlen, aber ich finde es eher eleganter, Errors und Exceptions gleich aus dem Weg zu gehen. (Natürlich muss man ab und an try-catch verwenden, aber ich hab schon von Leuten gehört, die NullPointerExceptions abfangen und das muss ja nun wirklich nicht sein)

Also nun meine Frage: Kann man im Programm selber feststellen, ob die jre eine 32bit oder 64bit Version ist? Und wenn ja, wie?
 
Java:
		String jvmModel = (String) System.getProperties().get("sun.arch.data.model");
		System.out.println(jvmModel);

sun.arch.data.model=64 oder sun.arch.data.model=32
 
Ich zitiere:

Sun has a Java System property to determine the bitness of the JVM: 32 or 64:

sun.arch.data.model=32 // 32 bit JVM
sun.arch.data.model=64 // 64 bit JVM

You can use

System.getProperty("sun.arch.data.model")

to determine if its 32/64 from the program.

Jatzt war ich zweiter ;(
 
Zuletzt bearbeitet:

Zurück
Oben