gpt4 book ai didi

java - 找不到 Java 主页

转载 作者:IT王子 更新时间:2023-10-29 00:26:45 25 4
gpt4 key购买 nike

我正在编写一个利用 jsvc 将 Java 服务作为守护进程启动的应用程序。我需要使用 jsvc 之类的东西,因为我的应用程序使用 1024 以下的端口,但我真的不想以 root 身份运行它,以便创建的文件归另一个用户所有。我还想将依赖项和配置保持在最低限度,以便客户端只需要一个 JVM 和安装的 jsvc 二进制文件。

但是,jsvc 似乎有一个主要问题;它无法在给定的 Unix 操作系统上检测到 Java 的主文件夹,这非常令人沮丧:

$ ./startup.sh
Cannot locate Java home

我至少可以通过手动设置 JVM 主目录来解决 Ubuntu 上的问题:

jsvc ... -home /usr/lib/jvm/default-java/ ...

有什么方法可以从 Bash 脚本动态确定 Java 主目录,以便我可以在大多数 Unixes/Linux 上使用它?做一些类似的事情,我晚上可以睡得更好:

JAVA_HOME="$( ... )"

jsvc ... -home "$JAVA_HOME" ...

...而不是对每个单独的操作系统进行硬编码。有没有办法,给定一个 java 二进制文件,我可以找到它的 JVM/JRE 的主目录?

最佳答案

不确定这是否适用于 *nixes,但找到了这个解决方案:

JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"

我已经在 Ubuntu 上测试过它并且它可以工作,但是它不适用于 OSX。

关于java - 找不到 Java 主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206262/

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