C# 有没有一种跨平台的方法来获取.NETCore中的java路径?

C# 有没有一种跨平台的方法来获取.NETCore中的java路径?,c#,.net-core,C#,.net Core,目前我正在开发一个带有嵌入式jar的.net核心控制台应用程序。没有java控制台应用程序,对吗?所以我想在我的控制台应用程序中运行我的jar文件。我知道.net进程API,但我不知道是否有环境变量告诉我java运行时的位置,以便我可以执行它 注册表项不是跨平台的,请不要使用某些仅限Windows的解决方案给出答案。您可以使用.NET Core以跨平台的方式获取环境变量 Console.WriteLine("JAVA_HOME: " + Environment.GetEnvironmentVar

目前我正在开发一个带有嵌入式jar的.net核心控制台应用程序。没有java控制台应用程序,对吗?所以我想在我的控制台应用程序中运行我的jar文件。我知道.net进程API,但我不知道是否有环境变量告诉我java运行时的位置,以便我可以执行它


注册表项不是跨平台的,请不要使用某些仅限Windows的解决方案给出答案。

您可以使用.NET Core以跨平台的方式获取环境变量

Console.WriteLine("JAVA_HOME: " + Environment.GetEnvironmentVariable("JAVA_HOME"));
正如每个人都指出的那样,制作一个跨平台的“跑步者”是一个坏主意,因为它很难维护


JAVA_HOME不是在安装时默认创建的,它将是一个脆弱的界面,但您可以让它工作。

JAVA_HOME
。。。。我认为
JAVA\u HOME
需要由用户设置……传统上,JAVA\u HOME是一个环境变量,您可以引用它来查找安装JAVA的路径。Java程序将安装在Java_HOME/bin/Java中。Java程序可以作为控制台应用程序运行,请参阅@Jeremy。在.net内核中没有注册表之类的东西。。。为什么标记为重复(除非真的有必要,否则您应该将JAR转换为等效的C#,或者使用IKVM来运行它。检测Java运行时维护起来会很痛苦,但您肯定可以检查ANTLR或其他项目的工作方式。