Является ли компилятор Java таким же, как в Linux / Windows? - PullRequest
0 голосов
/ 14 июня 2011

Я написал некоторый код Java в Ubuntu, но теперь мне нужна программа для запуска на Mac (это не должен быть готовый продукт, я просто хочу иметь возможность компилировать исходный код). Мне просто интересно, будет ли много изменений в коде при компиляции в Mac?

Ответы [ 5 ]

4 голосов
/ 14 июня 2011

Если у вас установлена ​​правильная версия JRE, ваша программа должна работать при условии, что у вас нет жестко запрограммированных зависимостей на машине, на которой она запущена (т. Е. Пути к жестко закодированным файлам и т. Д.).

3 голосов
/ 14 июня 2011

Одной из основных идей Java является однократная запись, запуск в любом месте - другими словами, вам нужно только один раз написать и скомпилировать код, а затем он будет работать на любой платформе с JVM установлен (с правильной версией). Таким образом, вам вообще не нужно перекомпилировать код для Mac или любой другой операционной системы.

Java компилируется в байт-код вместо собственного машинного кода. Виртуальная машина Java интерпретирует и выполняет этот байт-код и переводит его в собственный машинный код, используя компилятор "точно в срок" , чтобы он работал быстро.

Неважно, что ваша программа использует Swing - это само по себе не означает, что она не будет работать на Mac.

Единственная причина, по которой это не сработает, заключается в том, что вы использовали в своем коде жестко запрограммированные специфические для операционной системы вещи, такие как жесткое кодирование путей Windows, например C:\Program Files и т. Д. OS X или другие операционные системы, кроме Windows.

3 голосов
/ 14 июня 2011

Java использует JVM или Виртуальная машина Java для запуска кода, который вы компилируете.Пока вы не используете какие-либо странные специфичные для ОС функции в вашей программе (например, привязку к библиотекам, отличным от Java, или выполнение системных команд), ваша «скомпилированная» Java, вероятно, будет работать в большинстве реализаций Java.Существует более одной версии JVM и более одной реализации JVM, поэтому вы можете столкнуться с проблемами совместимости , если не будете об этом помнить.

3 голосов
/ 14 июня 2011

Не компилируйте ничего! Просто отправь им банки. Местная JVM сделает все остальное. Вот как работает Java.

Отказ от ответственности: Если вам нужны сторонние библиотечные фляги, вам, возможно, придется их тоже отгрузить или создать файл войны (или аналогичную упаковку), который содержит нужные вам фляги сторонних производителей.

2 голосов
/ 14 июня 2011

байт-код будет таким же после компиляции; но если вы использовали классы, которые недоступны на Mac, у вас будет еще немного работы.

...