У меня есть make-файл, который должен знать расположение каталога включения Java, поскольку он использует файл jni.h. Каков наилучший способ позволить Makefile автоматически определять, где Java установлена в Linux?
Спасибо, Chris
Как насчет использования
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());')
В Linux вы можете использовать команду which, например which java.Он должен сказать вам, где находится исполняемый файл java, который он будет использовать.
which
which java
Однако я бы рекомендовал установить JAVA_HOME, как указал Эрик.
Переменная среды JAVA_HOME содержит путь к установке Java.