Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从.net应用程序编译java代码?_C#_Java_.net_Compilation - Fatal编程技术网

C# 如何从.net应用程序编译java代码?

C# 如何从.net应用程序编译java代码?,c#,java,.net,compilation,C#,Java,.net,Compilation,我正在使用.NET4中的C#为Java创建一个源代码编辑器。我需要知道如何与jre交互,以便在.net的应用程序编辑器界面上编译java代码。我也希望向用户显示代码中的任何错误。任何关于如何实现这一点的想法都将不胜感激。请注意,JRE是运行时,因此并不随编译器提供。您将需要编译 我认为最简单的解决方案是从.Net应用程序中派生一个的实例。也许一个更好的解决方案(然而)是用Java本身编写应用程序,然后您可以直接在应用程序中使用。也许最自然的互操作性方法是在JVM中运行Java代码,在CLR中运行

我正在使用.NET4中的C#为Java创建一个源代码编辑器。我需要知道如何与jre交互,以便在.net的应用程序编辑器界面上编译java代码。我也希望向用户显示代码中的任何错误。任何关于如何实现这一点的想法都将不胜感激。

请注意,JRE是运行时,因此并不随编译器提供。您将需要编译


我认为最简单的解决方案是从.Net应用程序中派生一个的实例。也许一个更好的解决方案(然而)是用Java本身编写应用程序,然后您可以直接在应用程序中使用。

也许最自然的互操作性方法是在JVM中运行Java代码,在CLR中运行.NET代码,并使用运行时桥来管理它们之间的通信。在这个场景中,.NET代码调用充当Java类和对象代理的.NET类和对象。代理管理通信;调用.NET类的人甚至不知道他们最终调用的是Java类。运行时桥为各种体系结构提供互操作性,因为Java代码和.NET代码可以在不同的机器上运行,Java代码可以在独立的JVM或Java EE应用程序服务器中运行,并且该解决方案为任何JDK版本提供互操作性。与字节码翻译解决方案一样,您只需要Java字节码,而不需要源代码


本文的代码使用JNBridge中的JNBridgePro

您可以像运行任何其他应用程序一样运行
javac
。我假设这只是一个练习,因为java已经有很多免费的IDE了。为了与java世界紧密集成,你可能想考虑使用IKVM。@安得烈-谢谢更新。我承认我并不太担心这个版本,而是为了说明这样一个APICool的存在。甚至在编辑之前就得到了我的支持票。我希望甲骨文能够实现我的目标。它只需要几个小时就可以安装,将很快成为搜索引擎中的热门,并为我节省大量编辑时间(您不必用Java编写任何东西就可以访问任何Java本机API。有一个更好的解决方案:您可以通过iKVM从天堂调用地狱。@Andrew-这是最值得的RFE。很高兴看到它至少被接受了。“本文的代码使用JNBridge中的JNBridgePro。”嗯?这篇文章应该是链接吗?如果是的话,一个很好的提醒是,“页面标题”通常是更好的链接文本。网页作者经常在标题上花很多心思。