我在某 CentOS 6 上编译 collectd ,运行了 ./configure --enable-java 后提示找不到 javac :
checking for javac... not found
checking for jar... not found
checking for javac... no
checking for jar... no
但该服务器已经用 yum install java-1.7.0-openjdk-devel 安装了 jdk ,从命令行是可以运行 javac 的:
$ which javac
/usr/bin/javac
我认为它可能是通过 JAVA_HOME 来找的,但环境变量中没有设置 JAVA_HOME ,于是用 export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64 设置,但 configure 仍然找不到。
P.S. 这个 configure 脚本在我的 archlinux 上就可以找到 javac ,可以正常运行
看了代码之后我终于找到问题了:此 configure 的确是用 find 来找的,最后的命令大概是这样子:
find "$JAVA_HOME" -name javac
但这里的 $JAVA_HOME 是一个指向目录的符号链接,这就是问题所在:find 默认不跟进符号链接。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。