2013-02-13 2 views
1

Я слышал много раз, что одним из преимуществ импорта java является независимость платформы. Тэй говорит: «Вы можете запускать Java-программу везде, если есть JVM». Хорошо, я понял, но почему, например, c/C++ менее портативен? Я могу запустить программу c/C++ везде, где существует компилятор c/C++. Является ли JVM более простой в установке?Почему Java не зависит от платформы, но c/C++ нет?

+0

ответ? потому как. – UmNyobe

+0

хорошо - вы можете предоставить своему клиенту необходимый компилятор вместе с вашим источником - почему бы и нет? ;) –

+2

У Java лучше маркетинг? И они забыли рассказать вам, какой компилятор они использовали при создании JVM. –

ответ

3

Вы не можете использовать один и тот же двоичный код без перекомпиляции - это точка. Вы должны использовать компилятор C/C++ для plattform (например, gcc/g ++ или компилятор MSVC)

Посмотрите на Qt, это каркас кроссплатформ, основанный на C++, но вам нужно перекомпилировать. В Java вы только что создали Bytecode

+3

Вам все равно придется использовать отдельную JVM для каждой платформы хоста. –

+1

Да, но это потому, что JVM основан на коде C/C++ и зависимых от os-вызовах? Или я ошибаюсь? – swaechter

+2

@BoPersson: Верно. Но * приложения * могут быть доставлены в двоичной форме. Поэтому вместо того, чтобы перекомпилировать все 18 приложений, которые вы хотите использовать (и надеясь, что они были написаны правильно, чтобы справиться с этим, потому что ** ** являются огромными зависимыми от платформы различиями), вы устанавливаете одну JVM и просто запускаете 18 двоичных файлов. (Примечание: Я ** не ** говорю, что Java лучше, чем C/C++ [или наоборот]. Я думаю, что это бесполезное сравнение. Ключи не лучше, чем отвертки.) –

Смежные вопросы