Java, 64-битная, JNI - по сравнению с .NET CLR - PullRequest
1 голос
/ 04 июля 2010

PE-заголовок сборки .NET имеет целевую платформу для 32-разрядных / 64-разрядных систем, которая используется, когда сборка использует встроенное взаимодействие, например P / Invoke (в противном случае это будет Target=AnyCPU).

Есть ли какой-либо эквивалент для Java, когда приложение Java имеет интерфейс с каким-либо собственным интерфейсом через JNI ?JNI должен быть скомпилирован для 32-битной или 64-битной.

Есть ли статья, объясняющая 64-битную архитектуру и разработку Java?Я не смог найти его.

Ответы [ 2 ]

1 голос
/ 05 июля 2010

Вы можете определить 64-битную версию с помощью:

public static final boolean is64bit = (System.getProperty("sun.arch.data.model").indexOf("64") != -1)

Вы также можете запустить Java в 32- или 64-битной среде, используя -d32 или -d64.

Если этодля веб-приложения или приложения для настольного компьютера может быть способ указать его из файла манифеста.

0 голосов
/ 05 июля 2010

Вы можете посмотреть системное свойство os.arch:

String osArch = System.getProperty("os.arch");

К сожалению, возможные значения этого свойства не документированы, но вы можете попробовать его в других системах, чтобы увидеть, что оно возвращает (используяSun JDK 6, обновление 20, в моей 64-разрядной системе возвращает amd64).

Сведения о других доступных системных свойствах см. В документации по API java.lang.System.getProperties().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...