Я создаю редактор исходного кода для Java с использованием C# в .NET 4. Мне нужно знать, как я могу взаимодействовать с jre для компиляции кода java в моем интерфейсе редактора приложений из .net. Я хочу показать пользователю любые ошибки в коде. Любые идеи о том, как это сделать, будут высоко оценены.Как скомпилировать Java-код из приложения .net?
ответ
Обратите внимание, что JRE является runtime, и как таковой не поставляется с компилятором. Для компиляции вам понадобится JDK.
Я думаю, что самое простое решение - отбросить экземпляр javac из вашего приложения .Net. Возможно, предпочтительным решением было бы написать ваше приложение в самой Java, и затем вы можете использовать Java compiler API непосредственно в своем приложении.
@ Андрей - спасибо за обновление. Признаюсь, я не слишком беспокоился о версии, а чтобы проиллюстрировать * присутствие * такого API –
Cool. Получил мой голос еще до редактирования. Я хочу, чтобы Oracle выполнила мою [RFE для последних документов] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875). Это займет всего несколько часов, чтобы быстро стать лучшим хитом в поисковых системах и сэкономить мне много времени на редактирование. :( –
Вам не нужно ничего писать на Java, чтобы получить доступ к любой из родных API Java. Существует гораздо лучшее решение: вы можете называть ад с небес через iKVM. –
Возможно, наиболее естественным методом взаимодействия является запуск Java-кода в JVM, .NET-код в среде CLR и использование моста времени выполнения для управления сообщениями между ними. В этом случае код .NET вызывает классы и объекты .NET, которые действуют как прокси-серверы для классов Java и объектов. Прокси-серверы управляют связью; вызывающие .NET-классы даже не знают, что в конечном итоге они вызывают классы Java. Мост исполнения обеспечивает совместимость для самых разных архитектур, поскольку код Java и код .NET могут быть на разных компьютерах, код Java может работать в автономной JVM или на сервере приложений Java EE, и это решение обеспечивает совместимость для любая версия JDK. Как и в решениях преобразования байт-кода, вам нужны только байт-коды Java, а не источник.
Код этой статьи использует JNBridgePro от JNBridge.
* «Код этой статьи использует JNBridgePro от JNBridge. »* Huh? Была ли эта статья« предположительной ссылкой »? Если это так, то хорошее напоминание о том, что« заголовок страницы »обычно является лучшим текстом для текста ссылки. Авторы веб-страниц часто ставят много мысли в заголовок. –
- 1. «скомпилировать с» в .net?
- 2. Как скомпилировать CoffeeScript с .NET?
- 3. Как использовать проект C++ из .NET-приложения?
- 4. Как скомпилировать тестовые winforms приложения
- 5. Вызов веб-приложения .NET из другого веб-приложения .net
- 6. Скомпилировать .NET Micro для x86
- 7. Вызов NAnt из приложения .Net
- 8. Как скомпилировать сборку .NET для Silverlight?
- 9. Как скомпилировать библиотеку C в .Net dll?
- 10. POST форма из .NET-приложения
- 11. HylaFax, как использовать его из приложения .net
- 12. Как отобразить формы VB6 из приложения .NET
- 13. Как начать `-energy` Powercfg.exe из приложения .NET?
- 14. Как скомпилировать библиотеку на .NET Framework и .NET Compact Framework?
- 15. Как вызвать .NET 3.0 dll из приложения .NET 1.1?
- 16. Как использовать .NET XSLT-движок из приложения .NET 1.1?
- 17. Как подписаться на события .NET управления из внешнего .NET-приложения?
- 18. Как скомпилировать и создать JAR из java-приложения?
- 19. Как скомпилировать и загрузить в Arduino из приложения C#
- 20. Как скомпилировать проект GWT программно из приложения Java?
- 21. Скомпилировать и опубликовать сбой. Net Core
- 22. Как скомпилировать собственные приложения с использованием DDK?
- 23. Как скомпилировать приложения MobileFirst для конкретной среды?
- 24. Как скомпилировать приложения в Android TV Box?
- 25. Как скомпилировать проекты C++ из командной строки
- 26. Как скомпилировать приложения ASP.NET 2.0 в среде доверия
- 27. Как отменить публикацию приложения .Net
- 28. Как найти .net framework приложения?
- 29. Как заставить язык приложения .NET?
- 30. Как скомпилировать GCC из PHP
Вы можете запускать 'javac' так же, как и любое другое приложение. Я предполагаю, что это просто упражнение, при котором уже существует много бесплатных IDE для Java. –
Для более тесной интеграции с миром Java вы можете рассмотреть возможность использования iKVM. –