linux - 在 makefile 中检查 java 版本

标签 linux makefile

我正在尝试检查我的 makefile 中的 java 版本,如果版本不正确则退出。

checkJava::
      ifeq ($(shell java -version | grep "1.5.0"),0)
           @echo "Found version"
      else
           $(error "Could not find correct java version, please install 1.5")
      endif

执行此操作时,java -version 输出没有到达我期望的位置并且无法正常工作。关于如何解决的建议?谢谢!

编辑: 在 grep 之后添加结束引号

最佳答案

您需要打印状态代码,因为输出已返回。您还需要确保 java 版本转到标准输出——我的 IBM JDK 将它发送到标准错误。

ifeq ($(shell java -version 2>&1|grep 1.5.0 >/dev/null; printf $$?),0)

关于linux - 在 makefile 中检查 java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766677/

相关文章:

linux - CPU 亲和性掩码(将线程放在不同的 CPU 上)

python - 仅使用 python 正则表达式从最新的字符串中获取

c - 执行 ls | c 程序中的 wc linux 命令使用 2 个进程通过管道进行通信

c - 制作和增量构建

makefile - 覆盖 Makefile 中的静态模式规则(不发出警告)

与另外两个进程的通信进程

linux - 如何使用 xargs 和 cat 将两个不同文件的内容作为参数进行管道传输?

c - 是否可以在 FreeBSD 中使用 ubuntu 的共享对象库?

c++ - 使用 cmake 和 Qt4 进行 make 时出现 RCC 解析错误

linux - 从 makefile 执行复杂的 shell 命令