今天我遇到了问题,它与在新电脑上运行 opencv.3.3.0 有关。我从来没有遇到过这个问题,但我前一天从使用 openjdk 切换到 oracle jdk,这似乎没问题,但我认为这就是导致问题的原因,不确定。无论如何,我试图让 进行opencv330.jar
构建,但不是因为它说 ant 未安装,但我的电脑上有它。我安装了它sudo apt-get install ant
并且成功了。我这样做which ant
并得到了/usr/bin/ant
。这就是我所期望的,但是当我尝试为 opencv 构建时,我运行此命令
~/opencv-3.3.0/build$ cmake -DBUILD_SHARED_LIBS=OFF ..
它打印了很多东西。我猜它是在寻找现有文件和不存在的文件以及其他东西,但后来我看到了这个
-- Java:
-- ant: NO
-- JNI: NO
-- Java wrappers: NO
-- Java tests: NO
我确实安装了 ant,我不关心其余的,因为它们不需要满足我(不确定包装器和测试),但我希望它构建 opencv330.jar,但它不能没有ant
“缺失”。我该如何解决这个问题,以便它知道它ant
已安装在我的计算机上,然后它可以构建 jar?
以下是有关我的 Java 的一些信息:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/local/java/jdk1.8.0_51/bin/java
hagin@hagin-ThinkPad-T440p:~$ ^C
hagin@hagin-ThinkPad-T440p:~$ echo $JAVA_HOME
/usr/local/java/jdk1.8.0_51
hagin@hagin-ThinkPad-T440p:~$ which java
/usr/bin/java
hagin@hagin-ThinkPad-T440p:~$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
hagin@hagin-ThinkPad-T440p:~$
答案1
如果您想使用 Oracle JAVA,您可以按照我想要安装时始终遵循的指南进行操作:
如何在 Debian 或 Ubuntu VPS 上手动安装 Oracle Java
如果您希望继续使用 OpenJDK,只需运行此命令:
sudo apt-get install --reinstall openjdk-8-jdk
之后,验证它是否$JAVA_HOME
正常工作。输入printenv
以查看它是否存在。
或者输入ls $JAVA_HOME
,它将列出 java 安装文件夹。
要启用它:
- 输入
command -v java
以记下 java 路径; 编辑
~/.bashrc
文件并在末尾附加此行:export JAVA_HOME=<java path>
此外,还需要定义 ANT_HOME 才能使其工作。
您需要将export ANT_HOME=/usr/bin/ant
(示例来自这个问题)附加到~/.bashrc