2010-08-05 2 views
1

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

+3

Зачем вам это нужно? – jalf

+1

Что именно вы ищите? Вы ищете читаемый C++ (который вы не получите)? Вы ищете что-то более легкое для ссылки на проект на C++? Я сомневаюсь, что вы можете получить C++, но не компилятор Java на любой разумной платформе (возможно, компилятор C), и если вы пытаетесь обойти ограничения 3.1.3 для разработчиков iOS, это не будет работать вообще. –

+0

@David: Я использовал gcj для mingw для создания статически связанных двоичных файлов из java-кода. Они могут быть развернуты без принуждения пользователя к установке JRE. –

ответ

0

Возможно, это возможно.

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

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

1

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

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

+0

eton - забавно, это был один из первых результатов Google в моем поиске. с какими проблемами вы столкнулись, используя это (если есть) в своих тестовых проектах.и были ли там библиотеки, которые не играли хорошо? –

+0

Я не очень много сделал с ним, так как это вызвало простое любопытство. Основными проектами, которые я упомянул, были области вычисления приложений для разных фигур, по крайней мере, математическая библиотека (или ее части, которые я требую) работают хорошо, просто вопрос надлежащего переименования, как объяснено. Однако, как рекомендовано другими пользователями, я бы в любое время решил использовать собственный код. Я не вижу большого потенциала в приложении, которое я разместил, но это был лучший пример, который я мог бы предоставить для оригинального вопроса. –

+0

Да, я всегда с осторожностью отношусь к утилитам «конверсии», если я действительно не понимаю, что они делают. решения в конечном итоге влияют на всю вашу способность понимать, что происходит –

1

erotsppa - я не знал ни до просматривающие этот вопрос. мы несколько лет назад изучали некоторые инструменты java для C# с разнообразным успехом.

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

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

джим

4

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

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

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

+0

Собственно, вы можете это сделать. По крайней мере, вы можете написать JVM на C++ и скомпилировать Java-код для JVM, который внедряется в программу на C++. В качестве альтернативы вы можете взять компилятор Java и иметь конец C++, а также написанную на C++ время исполнения. Это было бы полезно, только если у вас есть компилятор C++ и компилятор Java, конечно, так как нет никакого способа сделать это где-нибудь ближе к идиоматическому. –

+0

на самом деле, компиляция собственного кода звучит как хороший вариант, особенно если ваша экспертиза лежит в java, а не какая-то «инструментальная» интерпретация этого в C++ –

0

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

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

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