Определить местоположение Java из Makefile - PullRequest
4 голосов
/ 23 июля 2010

У меня есть make-файл, который должен знать расположение каталога включения Java, поскольку он использует файл jni.h. Каков наилучший способ позволить Makefile автоматически определять, где Java установлена ​​в Linux?

Спасибо,
Chris

Ответы [ 4 ]

8 голосов
/ 10 июня 2011

Как насчет использования

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

4 голосов
/ 01 сентября 2016

Вы можете попробовать это тоже:

JAVA_HOME:=$(jrunscript -e 'java.lang.System.out.println(new java.io.File(java.lang.System.getProperty("java.home")).getParent());')
1 голос
/ 23 июля 2010

В Linux вы можете использовать команду which, например which java.Он должен сказать вам, где находится исполняемый файл java, который он будет использовать.

Однако я бы рекомендовал установить JAVA_HOME, как указал Эрик.

1 голос
/ 23 июля 2010

Переменная среды JAVA_HOME содержит путь к установке Java.

...