Xeon + Mac OS X + Java

研究室の Mac ProDual Core Xeon x 2 で Mac OS X が入っているんだけど、当然 Java も 64bits モードで動くと思っていたら。

% java -Xmx4000m test
Error occurred during initialization of VM
Could not reserve enough space for object heap

あれ?

% file $(readlink $(which java))
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java: Mach-O universal binary with 2 architectures
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java (for architecture i386):  Mach-O executable i386
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java (for architecture ppc):   Mach-O executable ppc

32bits の Universal Binary かよ。せっかく 12GBytes のメモリを積んでいるのに、これだと Java では 2GBytes しかメモリを使えない。なんだかなぁ。
しかも、

% arch
i386

だったり、gcc の生成コードはデフォルトで 32bits コードだったり。

% gcc -o test test.c
% file test
test: Mach-O executable i386
% gcc -m64 -o test test.c
% file test
test: Mach-O 64-bit executable x86_64

まぁ、OS 自体は 32bits だから仕方ないといえば仕方ないのかなぁ。Leopard になると違うのかもしれない。
とりあえず、昨日の件もあわせて OS を Linux に入れ替える方向で進言したほうがいいような気がしてきた。