gpt4 book ai didi

c# - 使用 C# 在运行时编译 java 代码

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:28 26 4
gpt4 key购买 nike

我知道可以使用 C# 在运行时编译 C# 代码,使用 CSharpCodeProvider 和 CodeDom。

是否也可以编译 Java?如果不是,还有其他选择吗?

我希望我的应用程序能够编译 C# 和 Java 代码。

最佳答案

  • 您需要在执行编译的系统上安装 JDK(或等效软件)

  • 您需要调用 Java 编译器

  • 您可能需要使用使用 Java 运行时(或等效程序)编译的代码

方法 A:使用编译器和编译代码的最简单方法是通过 Process.Start,如 Kieren 的回答中所述。如果您有必要的组件,这很容易。

//add this either atusing System.Diagnostics;

static void CompileJava(string javacPathName, string javaFilePathName, string commandLineOptions = "")
{
var startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = javacPathName;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = commandLineOptions + " " + javaFilePathName;

try {
using (var javacProcess = Process.Start(startInfo))
{
javacProcess.WaitForExit();
}
}
catch(Exception e)
{
// do something e.g. throw a more appropriate exception
}

}

方法 B:如果您需要更深入的集成,您可以尝试 native 链接方法(即使用 .NET 和 Java native 接口(interface),使两者在不调用外部进程的情况下进行互操作)。先决条件与方法 A 相同。所需的投资要高得多,只有在存在特定性能或方法 A 无法满足的其他限制时才应考虑此方法。

您可以通过以下链接找到一些信息:

来自 C# 端:http://blogs.msdn.com/b/texblog/archive/2007/04/05/linking-native-c-into-c-applications.aspx

来自 Java 端:http://docs.oracle.com/javase/6/docs/technotes/guides/jni/

关于c# - 使用 C# 在运行时编译 java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com