【发布时间】:2011-03-20 04:52:24
【问题描述】:
我有一个 makefile,它需要知道 Java 包含目录的位置,因为它使用了 jni.h 文件。让 Makefile 自动检测 Java 在 Linux 上的安装位置的最佳方法是什么?
谢谢,
克里斯
【问题讨论】:
-
我想我决定让用户在运行 makefile 之前设置 JAVA_HOME 变量。
标签: java makefile java-native-interface
我有一个 makefile,它需要知道 Java 包含目录的位置,因为它使用了 jni.h 文件。让 Makefile 自动检测 Java 在 Linux 上的安装位置的最佳方法是什么?
谢谢,
克里斯
【问题讨论】:
标签: java makefile java-native-interface
JAVA_HOME 环境变量包含 Java 安装的路径。
【讨论】:
在 Linux 上,您可以使用 which 命令,例如 which java。它应该告诉您它将使用的 java exec 的位置在哪里。
但是,我建议按照 Erick 指出的那样设置 JAVA_HOME。
【讨论】:
/etc/alternatives/java,这不是很有帮助
ant 构建的Java 比使用make 构建的更多。
如何使用
JAVA_HOME=$(shell readlink -f /usr/bin/javac | sed "s:bin/javac::")
改编自: https://serverfault.com/questions/143786/how-to-determine-java-home-on-debian-ubuntu
【讨论】:
你也可以试试这个:
JAVA_HOME:=$(jrunscript -e 'java.lang.System.out.println(new java.io.File(java.lang.System.getProperty("java.home")).getParent());')
【讨论】: