Существуют ли программы, которые будут конвертировать Java-код в C ++? - PullRequest
1 голос
/ 05 августа 2010

Существуют ли программы, которые будут конвертировать код Java в C ++?

Ответы [ 5 ]

4 голосов
/ 05 августа 2010

Java - это совершенно другой язык, чем C ++.Код, вероятно, придется полностью переписать с нуля.Даже если есть компилятор с Java на C ++:

  • Это не сработает на всем коде Java.
  • Он не будет писать код, который выглядит как написанный программистом C ++.
  • Вероятно, он не будет использовать обычные типы C ++ или STL, поэтому даже если он является допустимым C ++, он не будет хорошо интегрироваться с любым другим кодом.

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

1 голос
/ 05 августа 2010

Я использовал эту утилиту с базовыми проектами:

http://www.euclideanspace.com/software/language/xes/userGuide/convert/javaToCpp/index.htm

1 голос
/ 05 августа 2010

erotsppa - я не знал ни о чем, пока не просмотрел этот вопрос.Несколько лет назад мы исследовали некоторые инструменты java для c # с переменным успехом.

В любом случае, поиск в Google (который, я уверен, вы сделали) показал несколько интересных результатов:

http://www.euclideanspace.com/software/language/xes/userGuide/convert/javaToCpp/index.htm http://www.scicontrols.com/R2J.htm

Джим

0 голосов
/ 05 августа 2010

Есть виртуальная машина JC, которая переводит байт-код Java в C, который компилируется и запускается: http://jcvm.sourceforge.net/

Если вы просто хотите использовать библиотеку Java в приложении C ++ (или наоборот), тогда вам следует рассмотреть gcj из коллекции компиляторов GNU. Это компилятор java-> native кода. Компилятор C ++ имеет специальные расширения для взаимодействия с кодом, скомпилированным с gcj, что означает, что вы можете использовать модуль, написанный на Java, как если бы он был написан на C ++.

0 голосов
/ 05 августа 2010

Это может быть потенциально.

Но стили двух языков настолько различны, что полученный код C ++ будет выглядеть совсем не так, как C ++, и поэтому его будет сложно поддерживать.

Реальный вопрос в том, почему вы пытаетесь это сделать?

...