2012-06-27 2 views
0

Я создаю редактор исходного кода для Java с использованием C# в .NET 4. Мне нужно знать, как я могу взаимодействовать с jre для компиляции кода java в моем интерфейсе редактора приложений из .net. Я хочу показать пользователю любые ошибки в коде. Любые идеи о том, как это сделать, будут высоко оценены.Как скомпилировать Java-код из приложения .net?

+0

Вы можете запускать 'javac' так же, как и любое другое приложение. Я предполагаю, что это просто упражнение, при котором уже существует много бесплатных IDE для Java. –

+0

Для более тесной интеграции с миром Java вы можете рассмотреть возможность использования iKVM. –

ответ

2

Обратите внимание, что JRE является runtime, и как таковой не поставляется с компилятором. Для компиляции вам понадобится JDK.

Я думаю, что самое простое решение - отбросить экземпляр javac из вашего приложения .Net. Возможно, предпочтительным решением было бы написать ваше приложение в самой Java, и затем вы можете использовать Java compiler API непосредственно в своем приложении.

+0

@ Андрей - спасибо за обновление. Признаюсь, я не слишком беспокоился о версии, а чтобы проиллюстрировать * присутствие * такого API –

+0

Cool. Получил мой голос еще до редактирования. Я хочу, чтобы Oracle выполнила мою [RFE для последних документов] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875). Это займет всего несколько часов, чтобы быстро стать лучшим хитом в поисковых системах и сэкономить мне много времени на редактирование. :( –

+0

Вам не нужно ничего писать на Java, чтобы получить доступ к любой из родных API Java. Существует гораздо лучшее решение: вы можете называть ад с небес через iKVM. –

0

Возможно, наиболее естественным методом взаимодействия является запуск Java-кода в JVM, .NET-код в среде CLR и использование моста времени выполнения для управления сообщениями между ними. В этом случае код .NET вызывает классы и объекты .NET, которые действуют как прокси-серверы для классов Java и объектов. Прокси-серверы управляют связью; вызывающие .NET-классы даже не знают, что в конечном итоге они вызывают классы Java. Мост исполнения обеспечивает совместимость для самых разных архитектур, поскольку код Java и код .NET могут быть на разных компьютерах, код Java может работать в автономной JVM или на сервере приложений Java EE, и это решение обеспечивает совместимость для любая версия JDK. Как и в решениях преобразования байт-кода, вам нужны только байт-коды Java, а не источник.

Код этой статьи использует JNBridgePro от JNBridge.

+0

* «Код этой статьи использует JNBridgePro от JNBridge. »* Huh? Была ли эта статья« предположительной ссылкой »? Если это так, то хорошее напоминание о том, что« заголовок страницы »обычно является лучшим текстом для текста ссылки. Авторы веб-страниц часто ставят много мысли в заголовок. –

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