【问题标题】:Is there a cross-platform way of getting the java path in .net core?有没有一种跨平台的方式来获取 .net 核心中的 java 路径?
【发布时间】:2017-04-13 11:02:34
【问题描述】:

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

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

【问题讨论】:

  • JAVA_HOME? ....
  • 我以为JAVA_HOME需要用户自己设置...
  • 传统上 JAVA_HOME 是一个环境变量,您可以参考它来查找安装 JAVA 的路径。 Java 程序将安装在 JAVA_HOME/bin/java 中。 Java 程序可以作为控制台应用程序运行,请参阅introcs.cs.princeton.edu/java/11hello/HelloWorld.java.html
  • @Jeremy .net 核心中没有注册表之类的东西......为什么标记为重复? :(
  • 除非真的有必要,你应该把 JAR 转换成等效的 C#,或者使用 IKVM 来运行它。检测 Java 运行时维护起来会很痛苦,但您绝对可以检查 ANTLR 或其他项目的表现。

标签: c# .net-core


【解决方案1】:

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

Console.WriteLine("JAVA_HOME: " + Environment.GetEnvironmentVariable("JAVA_HOME"));

正如每个人都指出的那样,制作跨平台“跑步者”是一个坏主意,因为它难以维护。

JAVA_HOME 不是在安装时默认创建的,它会是一个不稳定的界面,但你可以让它工作。

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2011-05-29
    • 2023-02-23
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    相关资源
    最近更新 更多