Elettracompany.com

Компьютерный справочник
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Конвертер c в java

Ищем преобразователь кода, который преобразует C# в Java

Может ли кто-нибудь помочь мне, предложив название конвертера, который преобразует код C# в код Java. На самом деле, у меня есть инструмент, который написан в коде C#, и я пытаюсь его изменить. Поскольку я понятия не имею о фреймворках C# и .NET, мне кажется трудным преобразовать большой код самостоятельно. Я нашел из некоторых веб-информации, что существуют некоторые инструменты, которые могут конвертировать C# в Java (может быть, не правильно, но они могут). Может ли кто-нибудь помочь мне, предложив какое-нибудь название этих инструментов?

2 Ответа

Отказ от ответственности: ни один инструмент не является идеальным.

Тем не менее, если вы все еще хотите попробовать, то есть эти конвертеры доступны:

Не преобразователь, а мост между .NET и JVM:

Вам лучше сделать это вручную. Я уже использовал программное обеспечение для преобразования кода раньше, и оно просто все портит. Конечно, это исправляет некоторые синтаксические различия, но в основном то, что вы получите, — это просто беспорядок кода, который все равно не компилируется сразу.

С конвертером вам все равно придется делать много исправлений. Почему бы не взять небольшое количество дополнительного времени, которое потребуется, чтобы преобразовать его вручную и в конечном итоге получить лучший код?

Даже если вы не знаете C#, будет лучше выучить его и сделать преобразование вручную, как я уже сказал, вам все равно придется это сделать. C# и Java не слишком различаются синтаксически, но, как было указано выше, в языке, безусловно, есть пробелы. Простой C# легко переводится в Java, конечно же, используя Java BCL вместо .NET, которые, безусловно, имеют свои отличия. Когда вы входите в более сложные C#,, есть вещи, которые не имеют прямого эквивалента.

Имейте в виду, что конверсионные проекты могут быть чрезвычайно трудоемкими и чрезвычайно эффективными при поглощении денег в бизнес-среде.

Поиск в google даст вам несколько коммерческих вариантов, но я не собираюсь размещать их здесь, просто потому, что я против такого рода вещей. Есть некоторые вещи, которые вы просто не можете автоматически перевести.

Похожие вопросы:

У меня есть небольшой (

2000 строк кода) класс, который я хотел бы использовать из обоих java & .NET. Существует несколько подходов для этого — среди них обертывание класса как сервиса.

У меня есть пара строк кода в файле .java, Что я хочу сделать, так это преобразовать эти строки кода в objective c строк.. Вот эти строки:: (1) return 9.87*Math.sin(Math.toRadians(2.0 * B)) -.

Я собираюсь создать преобразователь текста в Речь, который может быть выполнен как в системах на основе Windows, так и в системах на основе Linux. Может ли кто-нибудь помочь мне ответить на.

Я разрабатываю в swift для iOS и хотел бы преобразовать свою библиотеку Utils в java в swift. Существует ли какой-нибудь онлайн конвертер для преобразования простого кода java в код swift?

У меня есть элемент управления inputTextArea на моем XPage и нужно добавить конвертер Java для запуска кода во время фазы проверки процесса. Я изначально использовал валидатор, но валидатор не.

Есть ли какой-либо преобразователь кода 8051 assembly в C. пожалуйста, помогите, предоставив соответствующие ссылки..

Мне нужен преобразователь кода от 27 до 28, и я готов заплатить. Я хочу что-то очень удобное, так как я хочу уменьшить количество копирования/вставки, которое мне нужно сделать. так может ли.

Я разрабатываю приложение в GWT, которое должно вызвать собственный код C++ в Directshow, чтобы выполнить некоторую мультимедийную обработку. Я предполагаю, что я не могу использовать JNI, потому.

Я реализовал класс, который преобразует температуру в градусах Цельсия. Мой вопрос заключается в том, как лучше всего реализовать преобразователь температуры? Это решение я использовал. public.

У меня был этот вопрос в программном курсе hw, True/False: интерпретатор Java преобразует файлы из формата байт-кода в исполняемые файлы. Я думаю, что это утверждение ложно. В классе они сказали.

Конвертировать С++ в Java?

Существуют ли какие-нибудь работоспособные конвертеры C++ -> Java? Естественно, я не ожидаю, что после такого преобразования код сразу заработает, но если есть какая-нибудь программка, способная нормально конвертировать хотя бы заголовочные файлы с описаниями классов, то это уже сэкономит мне кучу времени на текущем проекте. Кто что может посоветовать?

Может быть для начала спросить самого себя: зачем мне это надо?

ОМГ, мало того что конвертер реквестируем, дык ещё православных крестов в дяьвольскую жабу.

а давно в джаве есть «заголовочные файлы»?)
таки врядли такой есть, либо самому писать.
хотя, там не особо сложно будет, java похожа на c++, отличий почти и нету, относительно синтаксиса
только некоторые конструкции отличаются — например в с++ нет таких понятий как interface и abstract

Ну не в шапр же 😉

> например в с++ нет таких понятий как interface и abstract

ТС плюсы в жабу конвертировать хочет, а не наоборот

В плюсах есть, мне их нужно перенести. Что я непонятно написал?

Это я про заголовочные файлы

> Может быть для начала спросить самого себя: зачем мне это надо?
Если бы можно было, я бы и сам с удовольствием обошёлся без подобных извратов.

> работоспособные конвертеры C++ -> Java

Уже смешно. Как конвертировать препроцессор, шаблоны и прямую работу с памятью?

нормально конвертировать хотя бы заголовочные файлы с описаниями классов

Интересно как будут выглядеть «нормально сконвертированные заголовочные файлы», например, для boost::multi_index?

> boost::multi_index
Слава б-гу, ничего подобного мне не нужно. Никаких шаблонов, классы простые, но их дофига. Нужно хотя бы просто скопировать их иерархию, добавить пустые методы с теми же именами и т.д. Это уже сильно сократит затраты времени.
P.S. Да это изврат, так делать не нужно и т.д и т.п. Когда я умру, мне за это накинут пару сотен лет на отдельной сковородке.

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

Готового не знаю, но можно попробовать сделать наколенную поделку с помощью gcc-xml + любимый_язык_программирования. Если классов и правда немного, то работыт тут дня на 2, не больше.

s/классов и правда немного/классы и правда простые/

Я не углядел там C++-парсера. Может не туда смотрел?

охблин
мой фейл(

Ещё как вариант — посмотреть, что выдаст gcc-xml и что с этим можно будет сделать

А благородный дон — садист, оказывается))

Ещё как вариант — посмотреть, что выдаст gcc-xml и что с этим можно будет сделать

Учитывая, что ТС’у не нужны шаблоны (их как раз gcc-xml не умеет), то как раз будет самое оно. Преобразователь там будет достаточно тривиальный. А если не поленится, и написать «определялку» pure abstract classes ==> interfaces, то вообще красота будет.

Читать еще:  Можно ли восстановить удаленные сообщения в майле

Конвертировать С++ в Java?

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

Это НЕ будет экономить время, вы получите код, который не в стиле, не в культуре Java программирования (с куче С++измов) и потому будете ловить фееричнейшие баги и перепишете все равно все с нуля. У нас даже ручное, но достаточно дословное переписывание с C# на Java вылезло боком.

Хм, функционал abstract есть, только для этого виртуальный метод зануллить надо

C++ to Java Converter

C++ to Java Converter produces great Java code, saving you hours of painstaking work and valuable time.

Try the Free Edition

  • Free
  • High-quality conversion
  • Limited conversion output

Download

Purchase the Premium Edition

  • $149 US per year (15-day guarantee)
  • High-quality conversion
  • Unlimited conversion output

Purchase

Runs on Windows with version 4.5 or higher of the .NET Framework.

The Free Edition limits output to 100 lines per file (no limit on the number of files).

10 Second Overview

C++ to Java Array Conversion:

C++ to Java Collections Conversion:

C++ to Java Conversion of Modern C++ Features:

C++ to Java Indexer Conversion:

C++ to Java #define Constants Conversion:

*Scroll right to see C++ to Java Converter screenshots

Key Benefits

  • Saves valuable time
  • Accurate and comprehensive
  • Easy to use
  • Safe — your code never leaves your machine
  • Responsive customer support
  • 15 day money-back guarantee
  • Flexible — converts snippets, files, and folders from C++ to Java
  • Fast — tens of thousands of lines converted from C++ to Java per minute
  • Helpful conversion comments
  • Excellent educational tool for C++ developers learning Java
  • Numerous conversion and formatting options

Q: Are the original C++ files altered in any way?

Your existing code is left completely intact. The new Java files are output to the new location that you specify.

Q: What is the conversion accuracy?

Our accuracy is very high, but there will be significant adjustments required for all but the most trivial conversions. There are no direct equivalents for some aspects of C++. Read the rest of the FAQ to get an idea of a few things that are not converted. C++ to Java Converter is intended to reduce the amount of work you’ll have to do to convert code to Java, but it is just the first step.

You should not attempt to convert code that is heavily dependent on pointer arithmetic or template metaprogramming since these features are only practical in C++.

Q: What about function pointers?

C++ to Java Converter converts function pointer typedefs to functional interfaces.

Q: What about STL Containers?

C++ to Java Converter converts references to most STL container types, such as std::vector. A few methods of these containers that have no equivalent are not converted.

Q: Is C++/CLI code converted?

Q: What about C++ UI code?

The converter does not convert C++ UI types due to the lack of correspondence between these types and Java UI types.

Q: What are the most common adjustments necessary after conversion?

  • Most C/C++ library function calls are not converted. However, we do convert a subset of the C-based string, keyboard I/O, math, and utility function calls, and some of the C++ keyboard I/O methods, STL-based string class methods, and most STL containers.
  • Pointer arithmetic has no good equivalent in Java.
  • Some pointer and address manipulation may remain in the converted code.
  • Code that is extremely dependent on the preprocessor may result in more conversion issues.
  • Multiple inheritance is not converted since it is not available in Java.
  • Most operator overloads are converted, but a few operator overloads cannot be converted and are marked with a comment.
  • Some function pointers cannot be converted to Java. Only function pointer typedefs are converted to Java functional interfaces.
  • Since Java lacks a preprocessor, all code dependent on conditional compilation needs to be refactored so that the functionality can be achieved in other ways.
  • C++ templates are converted to, but are only roughly equivalent to, Java generics. These may require further attention.
  • Template metaprogramming has no good equivalent in Java.
  • Bit-by-bit copying of objects via the assignment operator is not the default in Java. We attempt to detect these cases and convert the assignment to a call to either the copy constructor (if used in a variable initialization) or the converted assignment operator overload (which is converted to a ‘copyFrom’ method) and also provide a ‘Warning’ comment.
  • Java does not allow embedded assembly instructions. These are marked with a comment.
  • There is no equivalent to friend functions or friend classes in Java. These are marked with a comment.
  • Unions and bit fields have no elegant equivalent in Java. Unions are commented out with a ‘todo’ note.

Looking for the Code Converter which converts C# to Java

Can anybody help me by suggesting the name of an converter which converts C# code to Java code. Actually, I have a tool which is written in C# code and I am trying to modify it. As I have no idea about C# and .NET framework, it seems difficult to me to convert the large code by my own. I found from some web information that there exist some tools which can convert C# to Java (may not be properly, however they can). Can anybody help me by suggesting some name of those tools.

Создан 11 авг. 11 2011-08-11 16:58:09 Arpssss

IMO such tools are only useful if you then have enough knowledge of both source and target language to fix the mess it makes. – Marc Gravell 11 авг. 11 2011-08-11 17:00:35

I have some knowledge of Java and about the functionality of above mentioned tool. However, no knowledge of C#. Will those tools help me ? What do you think ? – Arpssss 11 авг. 11 2011-08-11 17:04:37

@Arpssss — if you don’t understand the C# code then you probably don’t know, if the translated Java does the same — unless you have test cases for both c# and java. – Andreas_D 11 авг. 11 2011-08-11 17:07:36

Just to cite a few things that won’t translate well. structs, nullables, iterator-blocks, anon-methods, lambdas (differed capture rules), string-equality, LINQ, most of the BCL, dynamic, operators, delegates, events, generics-without-type-erasure. – Marc Gravell 11 авг. 11 2011-08-11 17:15:33

Читать еще:  Программа для восстановления удаленных файлов с диска

possible duplicate of [is there an effective tool to convert c# to java?](http://stackoverflow.com/questions/78811/is-there-an-effective-tool-to-convert-c-to-java) – user195488 11 авг. 11 2011-08-11 17:48:41

Christopher, I am agree with your answer.However, I started to learn C# thus I can convert by my own. But, I think Marc is right on that «they actually are pretty different» . I also feel the gap while studying c# (it became more tough because the complete tool is on c#).That’s why I am searching for a converter . – Arpssss 11 авг. 11 2011-08-11 17:53:46

I found by searching the web that (http://www.kevingao.net/csharp-java-conversion) this gives reasonable conversion (however, I have not yet tested with my code). I know it is impossible to convert properly because of the syntactic and semantic gap of them. Actually I thought like that, convert the C# code by using a commercial converter and then modify it by your own . – Arpssss 11 авг. 11 2011-08-11 17:55:05

All, let’s just provide him a converter, not a lecture. – user195488 11 авг. 11 2011-08-11 17:55:41

Code Monkey, thanks for making my question more clearer. – Arpssss 11 авг. 11 2011-08-11 18:51:00

2 ответа

Disclaimer: No tool is perfect.

However, if you still want to try then there are these converters available:

Not a converter but a bridge between .NET and the JVM:

Создан 11 авг. 11 2011-08-11 17:53:12 Anonymous

I am searching for a tool which converts C# code to Java code. Is these tools can convert (I am not caring about perfectness)? – Arpssss 11 авг. 11 2011-08-11 18:01:13

@Arpssss: Yes, only exception is JCLA which is the opposite: Java to C#. – user195488 11 авг. 11 2011-08-11 18:02:25

Thanks Code Monkey.. – Arpssss 11 авг. 11 2011-08-11 18:03:41

The Grasshopper link does not work. The dev.mainsoft.com site throws an error and mainsoft.com redirects to http://harmon.ie/. – Trisped 17 апр. 13 2013-04-17 19:16:19

The CSharpJavaMerger page looks like it has been hacked (title says «Nothing found for Csharp-java-conversion» but page is selling HYDROXYCITRIC ACID). Also, there is not a link on http://www.kevingao.net/ to the page. – Trisped 17 апр. 13 2013-04-17 19:17:14

@Trisped There’s nothing wrong with the [CSharpJavaMerger](http://csharpjavamerger.org/get-source-code.html) link. It points to the correct page now. – Anderson Green 22 дек. 15 2015-12-22 19:19:41

@AndersonGreen Yeah, looks like user195488 fixed it right after I put up the comment. – Trisped 22 дек. 15 2015-12-22 20:55:23

You are better off doing it by hand. I’ve used code conversion software before, and it just mucks everything up. Sure, it corrects a few syntax differences, but largely what you’ll get is just a mess of code that doesn’t compile right away anyway.

With a converter you’ll have to do a lot of corrections anyway. Why not take the small amount of extra time it will take to convert it by hand and end up with better code?

Even if you don’t know C#, it will be better to learn it and do the conversion by hand, as I said before you will have to do it anyway. C# and Java are not too different syntactically, but as @Marc pointed out above, there are certainly gaps in the language. Simple C# is easily translated to Java, of course having to use the Java BCL instead of the .NET, which certainly have their differences. As you get into more complicated C#, there are things that have no direct equivalent.

Keep in mind, that conversion projects can be extremely time-consuming and are extremely effective at swallowing money in a business environment.

A google search will yield you some commercial options, but I’m not going to post them here, simply because I’m against that sort of thing. There are some things you just can’t automatically translate.

I added a brief list of things that will make conversion tricky (comment on the question) — it makes me think that the «not too different» is generous — they actually are pretty different – Marc Gravell 11 авг. 11 2011-08-11 17:19:51

I *was* being generous, I think because I was speaking from my experience of going from Java to C#, which is admittedly easier, though still not without its own share of difficulties. I’ve updated the answer to reflect your insight. Thanks. – Christopher Currens 11 авг. 11 2011-08-11 17:24:28

Microsoft provides a tool to go from Java to C# so if Microsoft supports it, I don’t see why you can’t do it. Understandably that you want to make sure the code still works when you convert it. – user195488 11 авг. 11 2011-08-11 18:01:41

He’s asking for code that goes from C# to Java, not the other way around. There’s a large difference, as it is somewhat easier to convert Java to C#. I’m not saying he can’t use a tool, but I can say *from experience* he is better off writing it by hand. If the project is so large that he can’t do it by hand quickly, try a tool, but he will have to make so many changes it may not be worth it. – Christopher Currens 11 авг. 11 2011-08-11 18:04:39

@Chris: I know. I really don’t think he wanted a lecture, just a tool. You ask a question, get an answer. I’m sure if he wanted an opinion on tools then this all would be appropriate but everyone slammed him which is not the right way to treat someone asking a simple question for a list of converters. That’s as simple as this question really was and everyone just blew up on him. I flagged all the above comments as not constructive. – user195488 11 авг. 11 2011-08-11 18:07:46

I think everyone was trying to save him the headache. I guess some people have to learn the hard way. – Christopher Currens 11 авг. 11 2011-08-11 18:09:54

Christopher, I understood what you are talking about. I have started to learn C# thus I can convert by my own (I know this is the best soln.). But the problem is that as Marc says » they actually are pretty different» and I feel it also while learning C#. Now as my code is too large, I thought like that, first convert it by any commercial tool and then fix the bugs, performance issues. What your experience says, is it a bad idea ? – Arpssss 11 авг. 11 2011-08-11 18:15:09

@Arpssss, There’s not an easy answer to that question. If you need the code quickly, it’s a fine idea, but do not go into it thinking the tool will make it easy for you. Regarding the differences Marc pointed out, the tool will not know what to do with those pieces of code, leaving them unconverted. You will have to convert those things that don’t have a direct translation by hand anyway. At the very least, the tool will convert the syntax and some common calls to the base libraries. However, it will not account for the differences between the two languages «best practices». – Christopher Currens 11 авг. 11 2011-08-11 18:22:59

Читать еще:  Программа для восстановления удаленных файлов с компьютера

Thanks Christopher, I think I got your point. – Arpssss 11 авг. 11 2011-08-11 18:37:40

You’ve clearly had one or more unsatisfactory experiences with one or more tools at some time in the past, converting from some language to another. Describing those experiences, naming the tools and the times and languages, and quantifying even a little bit what kind of code you fed in, and the amount and kind of deficiencies you found in the translated code — would make this a better answer for SO. – Spike0xff 23 сен. 15 2015-09-23 20:22:18

Делает Java для инструмента c конвертером++/существует? [закрытый]

Я всегда спрашивал себя, можно ли сделать конвертер Java в C++.

может быть, инструмент, который преобразует синтаксис Java в синтаксис c++?

Я знаю, что языки отличаются, но простые вещи, такие как петли, где семантика соответствует 1 к 1.

есть ли такой инструмент? Или его можно сделать?

10 ответов

можно сделать все, что угодно, учитывая достаточно времени, денег и ресурсов. Это практично? За пределами тривиальных примеров не очень. Или, скорее, это зависит от того, что составляет приемлемую частоту ошибок.

реальная проблема заключается в том, что фразеологизмы отличаются в Java и C++. Например, Java для C# было бы намного проще (потому что идиомы гораздо более похожи). Самым большим, конечно, является то, что C++ имеет деструкторы и управляемую вручную память. Java использует блоки finally для этого поведения и сбора мусора.

также Java имеет общий супертип объекта. C++ не поддерживает.

дженерики к шаблонам были бы почти невозможны, я бы предположил.

на Firefox HTML5 parser написан на Java и преобразован в C++. Но я думаю, что конвертер, используемый там, вполне специфичен для этого проекта. Интересно, что получившийся парсер C++ оказался быстрее, чем старый парсер, написанный на C++.

Я также пишу конвертер как часть базе Н2, в разделе src/tools/org/h2 / java. Идея заключается в том, чтобы разрешить преобразование подмножества базы данных H2 в C++, поэтому это также не является общей целью переводчик.

и есть проект с открытым исходным кодом идентификации j2c.

Итак, есть способы конвертировать Java в C++. Но не ожидайте, что переводчик поддерживает все функции, и не ожидайте, что результирующий код будет быстрее, чем хорошая Java JVM.

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

Если вы хотите сделать это с нуля, это будет очень сложно, вы должны сделать всю работу javac и JVM для вас (например, сбор мусора).

кстати. У Google есть компилятор Java для JavaScript (входит в GWT)

странно, как есть конвертеры c++ для java, но только 1 Java для конвертера c++.

Как сказано, было бы трудно преобразовать Java в C++, но у нас может быть приложение или инструмент, который генерирует код в Java и equivalnet c++.

Я знаю одно приложение, которое генерирует код в C++ / Java / C#, учитывая модель, которая имеет свой собственный способ ее определения.

этот инструмент принадлежит CA и имя CA Plex. Поиск на www.ca.com

есть программы, которые утверждают, что они могут это сделать, но ни один из них не приобрел достаточной популярности, чтобы часто упоминать, поэтому мы оставим их в «попытках». Создание конвертера потребует много ИИ, встроенного в вашу программу. Сложность увеличивается в десять раз, когда swing участвует, потому что GTK/wxWidgets/Qt/win32 API все сильно отличаются от swing. Но это возможно. Не то, чтобы качество кода будет отличным, и нет гарантий, что ваша программа не рухнет из-за отдельной памяти методы обработки, но это возможно.

основная проблема заключается в том, что java-это язык, который написан и предназначен для общения с виртуальной машиной. Я предполагаю, что это будет возможно, но все, что вам останется-это очень плохо оптимизированное приложение с переводом слой делает то, что ВМ уже не. Я имею в виду, конечно, это возможно, это все равно не было бы решением для чего-либо, что я мог бы придумать. Если вы хотите сделать свое вялое java-приложение родным, возможно, ваше мышление слишком сложно, просто используйте приложение, такое как JET, его на самом деле довольно хорошо, и даст вам преимущества, которые принесет родное приложение. Конечно, если VM уже делает то, что приложение просит его сделать так же хорошо, как и собственный код(это происходит.. иногда: P) это может ничего не изменить.

Java для c#, tho, звучит более разумно, поскольку оба языка написаны аналогично, разговаривая с фреймворком как таковым, но это все равно оставит код очень неоптимизированным, поскольку код, написанный с нуля для конкретной фреймворка, не может быть превзойден.

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

Я только что нашел это через google, поскольку я помнил, что видел один в Univeristy, который создал код на основе uml.

Java в C будет проще. Помните, что вам нужно преобразовать язык, Если вы это сделаете, необходимые библиотеки могут быть преобразованы вашим новым компилятором. Другими словами, Swing и AWT не должны быть большой проблемой.

Я бы начал с хорошего взгляда на собственный интерфейс Java (JNI). JNI является частью java, которая позволяет использовать его с C и c++. Причина, по которой я бы начал здесь, заключается в том, что становится довольно очевидным, как части Java могут быть реализованы в C. Как только я понял основные структуры, например, как объекты Java могут быть сопоставлены с структурами C (struct) и как почти все в Java является объектом, включая массивы, я мог бы заглянуть в открытый исходный код JDK.

фактический конвертер должен был бы преобразовать все импортированные библиотеки Java (и их импортированные библиотеки и так далее. ) что означает, что вам понадобится исходный код для всего. Это преобразование не маленькая задача, так как библиотеки Java большие.

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

Ссылка на основную публикацию
Adblock
detector