Java скомпилирована для проблем с 32-битной ОС на 64-битной ОС - PullRequest
3 голосов
/ 25 июля 2011

Известны ли проблемы с запуском приложения Java, скомпилированного на 32-разрядном компьютере и работающего на 64-разрядном компьютере?

Ответы [ 4 ]

7 голосов
/ 25 июля 2011

Байт-код, сгенерированный 32-битным JDK, идентичен байт-коду, сгенерированному 64-битным JDK. Если у вас есть проблема, которая возникает только в 64-битной JVM, это потому, что в JVM есть ошибка, и использование 64-битной JDK не будет иметь никакого значения.

3 голосов
/ 25 июля 2011

Идея Java заключается в том, что версия программы с байт-кодом одинакова для всех платформ. Вот почему вы можете скомпилировать на компьютере с Windows и запустить получившиеся файлы классов и jar на компьютере с Linux. Я делаю такую ​​кросс-компиляцию ежедневно.

Сюда относится, использует ли JVM 32 или 64 бита.

Итак, простой ответ: нет, проблем нет

(более сложный ответ заключается в том, что если вы также используете не-Java собственный код, который вы вводите вместе с Java-кодом, например, DLL или около того, то этот код, скорее всего, придется перекомпилировать)

2 голосов
/ 25 июля 2011

Это зависит от вашего приложения, но при нормальных обстоятельствах не должно быть проблем с запуском кода с машины x86 на машине x64 и наоборот.

Если вы используете старую старую Java (без взаимодействия,не вызывать нативные библиотеки), сгенерированный байт-код не зависит от компьютера и должен работать на любой установленной JVM.

0 голосов
/ 25 июля 2011

Ничего такого, о чем я не могу думать, если только вы явно не назвали 32-битный нативный код, специфичный для среды.

Операционные системы, такие как Windows, используют WoW64 , чтобы 32-битные приложения могли работать под 64-битными системами. Это положение, обеспечивающее обратную совместимость. Пока нативные библиотеки зависят только от 32-битных или только от 64-битных библиотек, все хорошо. JVM заботится о преобразовании вашего байтового кода в соответствующий машинный код с использованием JIT, поэтому не стоит беспокоиться.

...