Сценарии C # внутри Java - PullRequest
6 голосов
/ 01 июля 2011

Я знаю, что могу использовать файлы Lua Script для манипулирования объектами Java с помощью таких библиотек, как LuaJava . У меня была идея использовать вместо этого сценарии C # ~

Возможно ли запускать сценарии C # внутри Java?

Ответы [ 3 ]

6 голосов
/ 01 июля 2011

Теоретически, да - вы можете сделать это в приложениях .Net, и есть взаимодействия Java / .Net.

Обычно, однако, взаимодействия Java / C # выполняются либо через P / Invoke, либо через COM - и то, и другое довольно громоздко для такого рода вещей, и поэтому в действительности это, вероятно, не будет работать так аккуратно, как вы могли себе представить.

Тем не менее, если вы захотите это сделать, я, вероятно, рекомендую вам написать «механизм сценариев» (то есть обертку вокруг компилятора C #) в C #, а затем сделать так, чтобы он представлял его на землю Java через взаимодействия, для пример:

public ScriptResult(string Script)
{
    // Implemented in .Net
    // Script is a string containing the C# code to execute
}

Затем вам нужно тщательно подумать о том, как ваши сценарии C # смогут получить доступ к любой функциональности Java-land, опять же, я думаю, что лучшим способом было бы реализовать класс-оболочку .Net, который вызывает объекты Java через взаимодействия.

Использование C # в качестве языка сценариев из приложения .Net удивительно просто - для информации см .:

2 голосов
/ 01 июля 2011

Вы можете сделать это наоборот.Взгляните на http://www.ikvm.net/ - он позволяет повторно использовать объект / библиотеку с одного языка на другом.

2 голосов
/ 01 июля 2011

Являются ли программы на C # скриптами? В любом случае, вы можете запускать большинство всех внешних программ через Runtime.exec (...), но обязательно следите за ловушками: Когда Runtime.exec () не будет .

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

...